Node API 兼容性列表
Deno 提供了一些内置的 Node.js 模块和全局对象的 polyfills。 节点兼容性是一个持续进行中的项目 - 帮助我们识别差距,并告诉我们 你需要哪些模块,可以 在 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 disconnect
, message
, multipleResolves
, rejectionHandled
and 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:
模块导入它们来使用它们。