跳到主要内容

Node API 兼容性列表

Deno 提供了一些内置的 Node.js 模块和全局对象的 polyfills。 节点兼容性是一个持续进行中的项目 - 帮助我们识别差距,并告诉我们 你需要哪些模块,可以 在 GitHub 上提交一个问题

内置模块支持

✅ = 完全支持
ℹ️ = 部分支持
❌ = 仅存根
node:assert

Fully supported.

Node.js docs

node:async_hooks
ℹ️

AsyncLocalStorage is supported. AsyncResource, executionAsyncId, and createHook are non-functional stubs.

Node.js docs

node:buffer

Fully supported.

Node.js docs

node:child_process
ℹ️

The ipc and overlapped stdio options are missing. Passing file descriptors by an integer value is missing.

Node.js docs

node:cluster

All exports are non-functional stubs.

Node.js docs

node:console

Fully supported.

Node.js docs

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.js docs

node:dgram
ℹ️

Some dgram.Socket instance methods are non-functional stubs:

  • addMembership
  • addSourceSpecificMembership
  • dropMembership
  • dropSourceSpecificMembership
  • setBroadcast
  • setMulticastInterface
  • setMulticastLoopback
  • setMulticastTtl
  • setTtl
  • ref
  • unref

Node.js docs

node:diagnostics_channel

Fully supported.

Node.js docs

node:dns
ℹ️

Missing dns.resolve* with ttl option.

Node.js docs

node:domain

All exports are non-functional stubs.

Node.js docs

node:events

Fully supported.

Node.js docs

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.js docs

node:http
ℹ️

createConnection option is currently not supported.

Node.js docs

node:http2
ℹ️

Partially supported, major work in progress to enable grpc-js.

Node.js docs

node:https
ℹ️

Missing https.Server.opts.cert and https.Server.opts.key array type.

Node.js docs

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.js docs

node:module

Fully supported.

Node.js docs

node:net
ℹ️

Missing net.Socket.prototype.constructor with fd option.

Node.js docs

node:os

Fully supported.

Node.js docs

node:path

Fully supported.

Node.js docs

node:perf_hooks
ℹ️

Missing perf_hooks.eventLoopUtilization, perf_hooks.timerify, perf_hooks.monitorEventLoopDelay.

Node.js docs

node:punycode

Fully supported.

Node.js docs

node:process
ℹ️

Missing disconnect, message, multipleResolves, rejectionHandled and worker events.

Node.js docs

node:querystring

Fully supported.

Node.js docs

node:readline

Fully supported.

Node.js docs

node:repl
ℹ️

builtinModules and _builtinLibs are supported. Missing REPLServer.prototype.constructor and start().

Node.js docs

node:stream

Fully supported.

Node.js docs

node:string_decoder
ℹ️

Missing decoding of ascii, latin1 and utf16le decoding options.

Node.js docs

node:sys

Fully supported.

Node.js docs

node:test
ℹ️

Currently only test API is supported.

Node.js docs

node:timers

Fully supported.

Node.js docs

node:tls
ℹ️

Missing createSecurePair.

Node.js docs

node:trace_events

All exports are non-functional stubs.

Node.js docs

node:tty
ℹ️

Missing ReadStream and WriteStream implementation.

Node.js docs

node:util
ℹ️

Missing aborted, transferableAbortSignal, transferableAbortController, MIMEParams, MIMEType, getSystemErrorMap, and debug.

Node.js docs

node:url

Fully supported.

Node.js docs

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.js docs

node:vm
ℹ️

runInThisContext is supported. Other APIs are not polyfilled and will throw and error.

Node.js docs

node:wasi

All exports are non-functional stubs.

Node.js docs

node:worker_threads
ℹ️

Missing parentPort.emit, parentPort.removeAllListeners, markAsUntransferable, moveMessagePortToContext, receiveMessageOnPort, Worker.prototype.getHeapSnapshot.

Node.js docs

node:zlib
ℹ️

Missing Options.prototype.constructor, BrotliOptions.prototype.constructor, BrotliDecompress.prototype.constructor, ZlibBase.prototype.constructor.

Node.js docs

全局变量

这是 Deno 支持的 Node 全局变量列表。这些全局变量仅在 npm 包范围内可用。在你自己的代码中,你可以通过从相关的 node: 模块导入它们来使用它们。

Global nameStatus
AbortController
AbortSignal
Blob
Buffer
ByteLengthQueuingStrategy
__dirname
__filename
atob
BroadcastChannel
btoa
clearImmediate
clearInterval
clearTimeout
CompressionStream
console
CountQueuingStrategy
Crypto
CryptoKey
CustomEvent
CustomEvent
DecompressionStream
Event
EventTarget
exports
fetch
fetch
File
File
FormData
global
Headers
MessageChannel
MessageEvent
MessagePort
module
PerformanceEntry
PerformanceMark
PerformanceMeasure
PerformanceObserver
PerformanceObserverEntryList
PerformanceResourceTiming
performance
process
queueMicrotask
ReadableByteStreamController
ReadableStream
ReadableStreamBYOBReader
ReadableStreamBYOBRequest
ReadableStreamDefaultController
ReadableStreamDefaultReader
require
Response
Request
setImmediate
setInterval
setTimeout
structuredClone
structuredClone
SubtleCrypto
DOMException
TextDecoder
TextDecoderStream
TextEncoder
TextEncoderStream
TransformStream
TransformStreamDefaultController
URL
URLSearchParams
URLSearchParams
WebAssembly
WritableStream
WritableStreamDefaultController
WritableStreamDefaultWriter