Node API 相容性清單
Deno 為許多內建 Node.js 模組和全域變數提供多重載入。Node 相容性是一個持續進行的專案 - 協助我們找出差距,並透過 在 GitHub 上開啟問題 讓我們知道您需要的模組。
內建模組支援
node:assert
✅
Fully supported.
node:async_hooks
ℹ️
AsyncLocalStorage
is supported. AsyncResource
,
executionAsyncId
, and createHook
are
non-functional stubs.
node:buffer
✅
Fully supported.
node:child_process
ℹ️
The ipc
and overlapped
stdio options are missing.
Passing file descriptors by an integer value is missing.
node:cluster
❌
All exports are non-functional stubs.
node:console
✅
Fully supported.
node:crypto
ℹ️
Missing Certificate
class,
crypto.Cipheriv.prototype.setAutoPadding
,
crypto.Decipheriv.prototype.setAutoPadding
,
crypto.getCipherInfo
, crypto.publicDecrypt
,
crypto.ECDH.prototype.convertKey
,
crypto.diffieHellman
, x448
option for
generateKeyPair
, crypto.KeyObject
,
safe
, add
and rem
options for
generatePrime
, crypto.Sign.prototype.sign
and
crypto.Verify.prototype.verify
with non BinaryLike
input, crypto.secureHeapUsed
, crypto.setEngine
,
legacy methods of crypto.X509Certificate
.
node:dgram
ℹ️
Some dgram.Socket
instance methods are non-functional stubs:
addMembership
addSourceSpecificMembership
dropMembership
dropSourceSpecificMembership
setBroadcast
setMulticastInterface
setMulticastLoopback
setMulticastTtl
setTtl
ref
unref
node:diagnostics_channel
✅
Fully supported.
node:dns
ℹ️
Missing dns.resolve*
with ttl
option.
node:domain
❌
All exports are non-functional stubs.
node:events
✅
Fully supported.
node:fs
ℹ️
node:fs
Missing utf16le
, latin1
and ucs2
encoding for fs.writeFile
and fs.writeFileSync
.
Missing Dirent.isBlockDevice
,
Dirent.isCharacterDevice
, Dirent.isFIFO
,
Dirent.isSocket
, FSWatcher.ref
,
FSWatcher.unref
.
node:fs/promises
Missing lchmod
, lchown
, lutimes
.
node:http
ℹ️
createConnection
option is currently not supported.
node:http2
ℹ️
Partially supported, major work in progress to enable grpc-js
.
node:https
ℹ️
Missing https.Server.opts.cert
and
https.Server.opts.key
array type.
node:inspector
ℹ️
console
is supported. Other APIs are stubs and will throw an
error. Due to security implications the Deno team does not plan to polyfill
these APIs.
node:module
✅
Fully supported.
node:net
ℹ️
Missing net.Socket.prototype.constructor
with fd
option.
node:os
✅
Fully supported.
node:path
✅
Fully supported.
node:perf_hooks
ℹ️
Missing perf_hooks.eventLoopUtilization
,
perf_hooks.timerify
,
perf_hooks.monitorEventLoopDelay
.
node:punycode
✅
Fully supported.
node:process
ℹ️
Missing multipleResolves
, worker
events.
node:querystring
✅
Fully supported.
node:readline
✅
Fully supported.
node:repl
ℹ️
builtinModules
and _builtinLibs
are supported.
Missing REPLServer.prototype.constructor
and
start()
.
node:stream
✅
Fully supported.
node:string_decoder
ℹ️
Missing decoding of ascii
, latin1
and
utf16le
decoding options.
node:sys
✅
Fully supported.
node:test
ℹ️
Currently only test
API is supported.
node:timers
✅
Fully supported.
node:tls
ℹ️
Missing createSecurePair
.
node:trace_events
❌
All exports are non-functional stubs.
node:tty
ℹ️
Missing ReadStream
and WriteStream
implementation.
node:util
ℹ️
Missing aborted
, transferableAbortSignal
, transferableAbortController
, MIMEParams
, MIMEType
, getSystemErrorMap
, and debug
.
node:url
✅
Fully supported.
node:v8
ℹ️
cachedDataVersionTag
and getHeapStatistics
are
supported. setFlagsFromStrings
is a noop. Other APIs are not
supported and will throw and error. The other APIs could be
polyfilled, but due inherent lack of format stability between the V8
versions, the Deno team is considering requiring a special flag to use them.
node:vm
ℹ️
runInThisContext
is supported. Other APIs are not polyfilled
and will throw and error.
node:wasi
❌
All exports are non-functional stubs.
node:worker_threads
ℹ️
Missing parentPort.emit
,
parentPort.removeAllListeners
,
markAsUntransferable
, moveMessagePortToContext
,
receiveMessageOnPort
,
Worker.prototype.getHeapSnapshot
.
node:zlib
ℹ️
Missing Options.prototype.constructor
,
BrotliOptions.prototype.constructor
,
BrotliDecompress.prototype.constructor
,
ZlibBase.prototype.constructor
.
全域變數
以下是 Deno 支援的 Node 全域變數清單。這些全域變數僅在 npm
套件範圍中可用。在您自己的程式碼中,您可以透過從相關的 node:
模組匯入它們來使用它們。