非推奨API#

Node.js APIは、以下のいずれかの理由で非推奨となる場合があります。

  • APIの使用が安全ではありません。
  • 改良された代替APIが利用可能です。
  • 将来のメジャーリリースでAPIに破壊的な変更が加わる予定です。

Node.jsでは4種類の非推奨を使用しています。

  • ドキュメントのみ
  • アプリケーション(`node_modules` 以外のコードのみ)
  • ランタイム(すべてのコード)
  • サポート終了

ドキュメントのみの非推奨化は、Node.js の API ドキュメント内でのみ表現されるものです。これらは、Node.js を実行中に副作用を生じません。一部のドキュメントのみの非推奨化は、--pending-deprecation フラグ(または代替の NODE_PENDING_DEPRECATION=1 環境変数)を使用して起動した場合、下記のランタイム非推奨化と同様に、ランタイム警告をトリガーします。そのフラグをサポートするドキュメントのみの非推奨化は、非推奨 API のリストで明示的にそうラベル付けされています。

node_modules 以外のコードのみを対象とするアプリケーションの非推奨化は、デフォルトで、node_modules からロードされていないコードで非推奨 API が初めて使用されたときに、stderr に出力されるプロセス警告を生成します。--throw-deprecation コマンドラインフラグを使用すると、ランタイム非推奨化によってエラーがスローされます。--pending-deprecation を使用すると、node_modules からロードされたコードに対しても警告が出力されます。

すべてのコードに対するランタイム非推奨化は、node_modules 以外のコードに対するランタイム非推奨化と似ていますが、node_modules からロードされたコードに対しても警告を出力する点が異なります。

ライフサイクル終了の非推奨化は、Node.js から機能が削除された場合、またはすぐに削除される場合に使用されます。

非推奨化の取り消し#

API の非推奨化が取り消される場合があります。そのような場合、このドキュメントは、その決定に関連する情報で更新されます。ただし、非推奨識別子は変更されません。

非推奨 API のリスト#

DEP0001: http.OutgoingMessage.prototype.flush#

タイプ: ライフサイクル終了

OutgoingMessage.prototype.flush() は削除されました。代わりに OutgoingMessage.prototype.flushHeaders() を使用してください。

DEP0002: require('_linklist')#

タイプ: ライフサイクル終了

_linklist モジュールは非推奨です。ユーザーランドの代替手段を使用してください。

DEP0003: _writableState.buffer#

タイプ: ライフサイクル終了

_writableState.buffer は削除されました。代わりに _writableState.getBuffer() を使用してください。

DEP0004: CryptoStream.prototype.readyState#

タイプ: ライフサイクル終了

CryptoStream.prototype.readyState プロパティは削除されました。

DEP0005: Buffer() コンストラクタ#

タイプ: アプリケーション(node_modules 以外のコードのみ)

API の使いやすさの問題により、偶発的なセキュリティ問題につながる可能性があるため、Buffer() 関数と new Buffer() コンストラクタは非推奨になりました。

代替として、次のいずれかの方法を使用して Buffer オブジェクトを作成してください。

--pending-deprecation を使用しない場合、ランタイム警告は node_modules にないコードに対してのみ発生します。つまり、依存関係での Buffer() の使用に関する非推奨警告は発生しません。--pending-deprecation を使用すると、Buffer() の使用場所に関わらず、ランタイム警告が発生します。

DEP0006: child_process options.customFds#

タイプ: ライフサイクル終了

child_process モジュールの spawn()fork()exec() メソッドでは、options.customFds オプションは非推奨です。代わりに options.stdio オプションを使用してください。

DEP0007: cluster worker.suicideworker.exitedAfterDisconnect に置き換える#

タイプ: ライフサイクル終了

以前のバージョンの Node.js cluster では、suicide という名前のブール型のプロパティが Worker オブジェクトに追加されました。このプロパティの目的は、Worker インスタンスがどのように、なぜ終了したのかを示すことでした。Node.js 6.0.0 では、古いプロパティは非推奨になり、新しいworker.exitedAfterDisconnect プロパティに置き換えられました。古いプロパティ名は、実際のセマンティクスを正確に記述しておらず、不必要に感情的な言葉遣いでした。

DEP0008: require('node:constants')#

タイプ: ドキュメントのみ

node:constants モジュールは非推奨です。特定の Node.js 組み込みモジュールに関連する定数へのアクセスを要求する場合は、代わりに関連するモジュールによって公開されている constants プロパティを参照してください。たとえば、require('node:fs').constantsrequire('node:os').constants です。

DEP0009: ダイジェストなしの crypto.pbkdf2#

タイプ: ライフサイクル終了

ダイジェストを指定せずに crypto.pbkdf2() API を使用することは、Node.js 6.0 で非推奨になりました。これは、このメソッドが推奨されない 'SHA1' ダイジェストを使用することをデフォルトとしていたためです。以前は、非推奨警告が出力されていました。Node.js 8.0.0 以降、digestundefined に設定して crypto.pbkdf2() または crypto.pbkdf2Sync() を呼び出すと、TypeError がスローされます。

Node.js v11.0.0 以降、digestnull に設定してこれらの関数を呼び出すと、digestundefined の場合の動作に合わせて非推奨警告が出力されるようになりました。

ただし、現在は、undefined または null のどちらを渡しても TypeError がスローされます。

DEP0010: crypto.createCredentials#

タイプ: ライフサイクル終了

crypto.createCredentials() API は削除されました。代わりに tls.createSecureContext() を使用してください。

DEP0011: crypto.Credentials#

タイプ: ライフサイクル終了

crypto.Credentials クラスは削除されました。代わりに tls.SecureContext を使用してください。

DEP0012: Domain.dispose#

タイプ: ライフサイクル終了

Domain.dispose() は削除されました。代わりに、ドメインに設定されたエラーイベントハンドラを使用して、失敗した I/O アクションから明示的に復旧してください。

DEP0013: コールバックなしの非同期関数 fs#

タイプ: ライフサイクル終了

Node.js 10.0.0 以降、コールバックなしで非同期関数を呼び出すと TypeError がスローされます。https://github.com/nodejs/node/pull/12562 を参照してください。

DEP0014: 従来の文字列インターフェース fs.read#

タイプ: ライフサイクル終了

fs.read() の従来の String インターフェースは非推奨です。代わりに、ドキュメントに記載されている Buffer API を使用してください。

DEP0015: 従来の文字列インターフェース fs.readSync#

タイプ: ライフサイクル終了

fs.readSync() の従来の String インターフェースは非推奨です。代わりに、ドキュメントに記載されている Buffer API を使用してください。

DEP0016: GLOBAL/root#

タイプ: ライフサイクル終了

global プロパティに対する GLOBALroot のエイリアスは、Node.js 6.0.0 で非推奨になり、その後削除されました。

DEP0017: Intl.v8BreakIterator#

タイプ: ライフサイクル終了

Intl.v8BreakIterator は非標準の拡張機能であり、削除されました。Intl.Segmenter を参照してください。

DEP0018: 未処理の Promise の拒否#

タイプ: ライフサイクル終了

未処理のPromise拒否は非推奨になりました。デフォルトでは、処理されないPromise拒否は、Node.jsプロセスをゼロ以外の終了コードで終了させます。Node.jsが未処理の拒否を扱う方法を変更するには、--unhandled-rejectionsコマンドラインオプションを使用してください。

DEP0019: ディレクトリ外で解決されたrequire('.')#

タイプ: ライフサイクル終了

特定のケースにおいて、require('.')はパッケージディレクトリ外で解決される可能性がありました。この動作は削除されました。

DEP0020: Server.connections#

タイプ: ライフサイクル終了

Server.connectionsプロパティはNode.js v0.9.7で非推奨となり、削除されました。Server.getConnections()メソッドを代わりに使用してください。

DEP0021: Server.listenFD#

タイプ: ライフサイクル終了

Server.listenFD()メソッドは非推奨となり、削除されました。Server.listen({fd: <number>})を代わりに使用してください。

DEP0022: os.tmpDir()#

タイプ: ライフサイクル終了

os.tmpDir() APIはNode.js 7.0.0で非推奨となり、削除されました。os.tmpdir()を代わりに使用してください。

DEP0023: os.getNetworkInterfaces()#

タイプ: ライフサイクル終了

os.getNetworkInterfaces()メソッドは非推奨です。os.networkInterfaces()メソッドを代わりに使用してください。

DEP0024: REPLServer.prototype.convertToContext()#

タイプ: ライフサイクル終了

REPLServer.prototype.convertToContext() APIは削除されました。

DEP0025: require('node:sys')#

タイプ: ランタイム

node:sysモジュールは非推奨です。utilモジュールを代わりに使用してください。

DEP0026: util.print()#

タイプ: ライフサイクル終了

util.print()は削除されました。console.log()を代わりに使用してください。

DEP0027: util.puts()#

タイプ: ライフサイクル終了

util.puts()は削除されました。console.log()を代わりに使用してください。

DEP0028: util.debug()#

タイプ: ライフサイクル終了

util.debug()は削除されました。console.error()を代わりに使用してください。

DEP0029: util.error()#

タイプ: ライフサイクル終了

util.error()は削除されました。console.error()を代わりに使用してください。

DEP0030: SlowBuffer#

タイプ: ドキュメントのみ

SlowBufferクラスは非推奨です。Buffer.allocUnsafeSlow(size)を代わりに使用してください。

DEP0031: ecdh.setPublicKey()#

タイプ: ドキュメントのみ

ecdh.setPublicKey()メソッドは、APIへの組み込みが役に立たないため、非推奨になりました。

DEP0032: node:domainモジュール#

タイプ: ドキュメントのみ

domainモジュールは非推奨であり、使用しないでください。

DEP0033: EventEmitter.listenerCount()#

タイプ: ドキュメントのみ

events.listenerCount(emitter, eventName) APIは非推奨です。emitter.listenerCount(eventName)を代わりに使用してください。

DEP0034: fs.exists(path, callback)#

タイプ: ドキュメントのみ

fs.exists(path, callback) APIは非推奨です。fs.stat()またはfs.access()を代わりに使用してください。

DEP0035: fs.lchmod(path, mode, callback)#

タイプ: ドキュメントのみ

fs.lchmod(path, mode, callback) APIは非推奨です。

DEP0036: fs.lchmodSync(path, mode)#

タイプ: ドキュメントのみ

fs.lchmodSync(path, mode) APIは非推奨です。

DEP0037: fs.lchown(path, uid, gid, callback)#

タイプ: 非推奨の取り消し

fs.lchown(path, uid, gid, callback) APIは非推奨でしたが、libuvに必要なサポートAPIが追加されたため、非推奨は取り消されました。

DEP0038: fs.lchownSync(path, uid, gid)#

タイプ: 非推奨の取り消し

fs.lchownSync(path, uid, gid) APIは非推奨でしたが、libuvに必要なサポートAPIが追加されたため、非推奨は取り消されました。

DEP0039: require.extensions#

タイプ: ドキュメントのみ

require.extensionsプロパティは非推奨です。

DEP0040: node:punycodeモジュール#

タイプ: ランタイム

punycodeモジュールは非推奨です。代わりにユーザランドの代替手段を使用してください。

DEP0041: NODE_REPL_HISTORY_FILE環境変数#

タイプ: ライフサイクル終了

NODE_REPL_HISTORY_FILE環境変数は削除されました。代わりにNODE_REPL_HISTORYを使用してください。

DEP0042: tls.CryptoStream#

タイプ: ライフサイクル終了

tls.CryptoStreamクラスは削除されました。tls.TLSSocketを代わりに使用してください。

DEP0043: tls.SecurePair#

タイプ: ドキュメントのみ

tls.SecurePairクラスは非推奨です。tls.TLSSocketを代わりに使用してください。

DEP0044: util.isArray()#

タイプ: ドキュメントのみ

util.isArray() APIは非推奨です。代わりにArray.isArray()を使用してください。

DEP0045: util.isBoolean()#

タイプ: ドキュメントのみ

util.isBoolean() APIは非推奨です。

DEP0046: util.isBuffer()#

タイプ: ドキュメントのみ

util.isBuffer() APIは非推奨です。Buffer.isBuffer()を代わりに使用してください。

DEP0047: util.isDate()#

タイプ: ドキュメントのみ

util.isDate() APIは非推奨です。

DEP0048: util.isError()#

タイプ: ドキュメントのみ

util.isError() APIは非推奨です。

DEP0049: util.isFunction()#

タイプ: ドキュメントのみ

util.isFunction() APIは非推奨です。

DEP0050: util.isNull()#

タイプ: ドキュメントのみ

util.isNull() APIは非推奨です。

DEP0051: util.isNullOrUndefined()#

タイプ: ドキュメントのみ

util.isNullOrUndefined() APIは非推奨です。

DEP0052: util.isNumber()#

タイプ: ドキュメントのみ

util.isNumber() APIは非推奨です。

DEP0053: util.isObject()#

タイプ: ドキュメントのみ

util.isObject() APIは非推奨です。

DEP0054: util.isPrimitive()#

タイプ: ドキュメントのみ

util.isPrimitive() APIは非推奨です。

DEP0055: util.isRegExp()#

タイプ: ドキュメントのみ

util.isRegExp() APIは非推奨です。

DEP0056: util.isString()#

タイプ: ドキュメントのみ

util.isString() APIは非推奨です。

DEP0057: util.isSymbol()#

タイプ: ドキュメントのみ

util.isSymbol() APIは非推奨です。

DEP0058: util.isUndefined()#

タイプ: ドキュメントのみ

util.isUndefined() APIは非推奨です。

DEP0059: util.log()#

タイプ: ドキュメントのみ

util.log() APIは非推奨です。

DEP0060: util._extend()#

タイプ: ドキュメントのみ

util._extend() APIは非推奨です。

DEP0061: fs.SyncWriteStream#

タイプ: ライフサイクル終了

fs.SyncWriteStreamクラスは、公開可能なAPIとして意図されておらず、削除されました。代替APIはありません。ユーザランドの代替手段を使用してください。

DEP0062: node --debug#

タイプ: ライフサイクル終了

--debugはレガシーなV8デバッガインターフェースを有効化しますが、V8 5.8以降で削除されました。代わりに--inspectを使用して有効化するInspectorに置き換えられています。

DEP0063: ServerResponse.prototype.writeHeader()#

タイプ: ドキュメントのみ

node:httpモジュールのServerResponse.prototype.writeHeader() APIは非推奨です。代わりにServerResponse.prototype.writeHead()を使用してください。

ServerResponse.prototype.writeHeader()メソッドは、公式にサポートされているAPIとしてドキュメントに記載されたことはありませんでした。

DEP0064: tls.createSecurePair()#

タイプ: ランタイム

tls.createSecurePair() APIは、Node.js 0.11.3のドキュメントで非推奨とされました。代わりにtls.Socketを使用する必要があります。

DEP0065: repl.REPL_MODE_MAGICNODE_REPL_MODE=magic#

タイプ: ライフサイクル終了

node:replモジュールのreplModeオプションで使用されるREPL_MODE_MAGIC定数は削除されました。その動作は、V8 5.0がインポートされたNode.js 6.0.0以降、REPL_MODE_SLOPPYと機能的に同一でした。代わりにREPL_MODE_SLOPPYを使用してください。

NODE_REPL_MODE環境変数は、対話型nodeセッションの基礎となるreplModeを設定するために使用されます。その値であるmagicも削除されました。代わりにsloppyを使用してください。

DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames#

タイプ: ランタイム

node:httpモジュールのOutgoingMessage.prototype._headersOutgoingMessage.prototype._headerNamesプロパティは非推奨です。アウトゴーイングヘッダーを操作するには、公開されているメソッド(例:OutgoingMessage.prototype.getHeader()OutgoingMessage.prototype.getHeaders()OutgoingMessage.prototype.getHeaderNames()OutgoingMessage.prototype.getRawHeaderNames()OutgoingMessage.prototype.hasHeader()OutgoingMessage.prototype.removeHeader()OutgoingMessage.prototype.setHeader())のいずれかを使用してください。

OutgoingMessage.prototype._headersOutgoingMessage.prototype._headerNamesプロパティは、公式にサポートされているプロパティとしてドキュメントに記載されたことはありませんでした。

DEP0067: OutgoingMessage.prototype._renderHeaders#

タイプ: ドキュメントのみ

node:httpモジュールのOutgoingMessage.prototype._renderHeaders() APIは非推奨です。

OutgoingMessage.prototype._renderHeadersプロパティは、公式にサポートされているAPIとしてドキュメントに記載されたことはありませんでした。

DEP0068: node debug#

タイプ: ライフサイクル終了

node debugはレガシーなCLIデバッガに対応しており、node inspectで利用可能なV8インスペクタベースのCLIデバッガに置き換えられました。

DEP0069: vm.runInDebugContext(string)#

タイプ: ライフサイクル終了

DebugContextはV8で削除され、Node.js 10以降では利用できません。

DebugContextは実験的なAPIでした。

DEP0070: async_hooks.currentId()#

タイプ: ライフサイクル終了

async_hooks.currentId()は、明確にするためにasync_hooks.executionAsyncId()に名前変更されました。

この変更は、async_hooksが実験的なAPIである間に加えられました。

DEP0071: async_hooks.triggerId()#

タイプ: ライフサイクル終了

async_hooks.triggerId()は、明確にするためにasync_hooks.triggerAsyncId()に名前変更されました。

この変更は、async_hooksが実験的なAPIである間に加えられました。

DEP0072: async_hooks.AsyncResource.triggerId()#

タイプ: ライフサイクル終了

async_hooks.AsyncResource.triggerId()は、明確にするためにasync_hooks.AsyncResource.triggerAsyncId()に名前変更されました。

この変更は、async_hooksが実験的なAPIである間に加えられました。

DEP0073: net.Serverのいくつかの内部プロパティ#

タイプ: ライフサイクル終了

不適切な名前を持つnet.Serverインスタンスのいくつかの内部の、ドキュメント化されていないプロパティへのアクセスは非推奨です。

元のAPIはドキュメント化されておらず、内部コード以外のコードには一般的に有用ではなかったため、代替APIは提供されていません。

DEP0074: REPLServer.bufferedCommand#

タイプ: ライフサイクル終了

REPLServer.bufferedCommandプロパティは、REPLServer.clearBufferedCommand()に置き換えられました。

DEP0075: REPLServer.parseREPLKeyword()#

タイプ: ライフサイクル終了

REPLServer.parseREPLKeyword()は、ユーザーランドからのアクセスが削除されました。

DEP0076: tls.parseCertString()#

タイプ: ライフサイクル終了

tls.parseCertString()は些細な解析ヘルパーであり、誤って公開されました。証明書のサブジェクトと発行者文字列を解析することになっていましたが、複数値の相対識別名(Relative Distinguished Name)を正しく処理したことはありませんでした。

このドキュメントの以前のバージョンでは、tls.parseCertString()の代替としてquerystring.parse()を使用することを提案していました。しかし、querystring.parse()もすべての証明書のサブジェクトを正しく処理するわけではないため、使用しないでください。

DEP0077: Module._debug()#

タイプ: ランタイム

Module._debug()は非推奨です。

Module._debug()関数は、公式にサポートされているAPIとしてドキュメントに記載されたことはありませんでした。

DEP0078: REPLServer.turnOffEditorMode()#

タイプ: ライフサイクル終了

REPLServer.turnOffEditorMode()は、ユーザーランドからのアクセスが削除されました。

DEP0079: .inspect()によるオブジェクトのカスタム検査関数#

タイプ: ライフサイクル終了

util.inspect()のカスタム検査関数を指定するために、オブジェクトのプロパティ名inspectを使用することは非推奨です。util.inspect.customを使用してください。バージョン6.4.0より前のNode.jsとの下位互換性のために、両方を指定できます。

DEP0080: path._makeLong()#

タイプ: ドキュメントのみ

内部のpath._makeLong()は、公開用を意図したものではありませんでした。しかし、ユーザーランドモジュールはそれを有用であると考えていました。内部APIは非推奨となり、同一の公開path.toNamespacedPath()メソッドに置き換えられました。

DEP0081: ファイルディスクリプタを使用するfs.truncate()#

タイプ: ランタイム

ファイルディスクリプタを使用したfs.truncate()fs.truncateSync()の使用は非推奨です。ファイルディスクリプタを操作するには、fs.ftruncate()またはfs.ftruncateSync()を使用してください。

DEP0082: REPLServer.prototype.memory()#

タイプ: ライフサイクル終了

REPLServer.prototype.memory()は、REPLServer自体の内部メカニズムにのみ必要です。この関数は使用しないでください。

DEP0083: ecdhCurvefalseに設定してECDHを無効化#

タイプ:終息。

tls.createSecureContext()tls.TLSSocketecdhCurveオプションは、サーバーでのみECDHを完全に無効にするためにfalseに設定できました。このモードは、OpenSSL 1.1.0への移行とクライアントとの一貫性を図る準備として非推奨となり、現在はサポートされていません。代わりにciphersパラメーターを使用してください。

DEP0084: バンドルされた内部依存関係のrequire#

タイプ: ライフサイクル終了

Node.jsバージョン4.4.0と5.2.0以降、内部使用のみを目的としたいくつかのモジュールが、require()を通じてユーザーコードに誤って公開されました。これらのモジュールは

  • v8/tools/codemap
  • v8/tools/consarray
  • v8/tools/csvparser
  • v8/tools/logreader
  • v8/tools/profile_view
  • v8/tools/profile
  • v8/tools/SourceMap
  • v8/tools/splaytree
  • v8/tools/tickprocessor-driver
  • v8/tools/tickprocessor
  • node-inspect/lib/_inspect(7.6.0以降)
  • node-inspect/lib/internal/inspect_client(7.6.0以降)
  • node-inspect/lib/internal/inspect_repl(7.6.0以降)

v8/*モジュールにはエクスポートがなく、特定の順序でインポートしないとエラーが発生します。そのため、require()を通じてインポートする正当なユースケースは事実上ありません。

一方、node-inspectは、同じ名前でnpmレジストリに公開されているため、パッケージマネージャーを使用してローカルにインストールできます。そうすれば、ソースコードを変更する必要はありません。

DEP0085: AsyncHooksの機密性の高いAPI#

タイプ: ライフサイクル終了

AsyncHooksの機密性の高いAPIは、ドキュメント化されておらず、さまざまな軽微な問題がありました。代わりにAsyncResource APIを使用してください。https://github.com/nodejs/node/issues/15572を参照してください。

DEP0086: runInAsyncIdScopeの削除#

タイプ: ライフサイクル終了

runInAsyncIdScope'before'または'after'イベントを発行せず、多くの問題を引き起こす可能性があります。https://github.com/nodejs/node/issues/14328を参照してください。

DEP0089: require('node:assert')#

タイプ: 非推奨の取り消し

assert を直接インポートすることは、公開されている関数が緩やかな等価性チェックを使用しているため推奨されませんでした。node:assert モジュールの使用は推奨されているため、非推奨化は取り消されました。非推奨化により開発者の混乱が生じていたためです。

DEP0090: 無効な GCM 認証タグの長さ#

タイプ: ライフサイクル終了

Node.js は、decipher.setAuthTag() を呼び出す際に OpenSSL が受け入れるすべての GCM 認証タグの長さをサポートしていました。Node.js v11.0.0 以降、128、120、112、104、96、64、32 ビットの認証タグの長さのみが許可されます。それ以外の長さの認証タグは、NIST SP 800-38D に従って無効です。

DEP0091: crypto.DEFAULT_ENCODING#

タイプ: ライフサイクル終了

crypto.DEFAULT_ENCODING プロパティは、Node.js 0.9.3 より前のバージョンとの互換性のためにのみ存在し、削除されました。

DEP0092: トップレベルの thismodule.exports にバインドされている#

タイプ: ドキュメントのみ

module.exports の代わりにトップレベルの this にプロパティを代入することは非推奨です。代わりに exports または module.exports を使用してください。

DEP0093: crypto.fips は非推奨となり、置き換えられました#

タイプ: ドキュメントのみ

crypto.fips プロパティは非推奨です。代わりに crypto.setFips()crypto.getFips() を使用してください。

DEP0094: 複数の引数で assert.fail() を使用している#

タイプ: ランタイム

複数の引数で assert.fail() を使用することは非推奨です。引数を1つだけ使用するか、別の node:assert モジュールメソッドを使用してください。

DEP0095: timers.enroll()#

タイプ: ランタイム

timers.enroll() は非推奨です。公開されているドキュメントにある setTimeout() または setInterval() を使用してください。

DEP0096: timers.unenroll()#

タイプ: ランタイム

timers.unenroll() は非推奨です。公開されているドキュメントにある clearTimeout() または clearInterval() を使用してください。

DEP0097: domain プロパティを持つ MakeCallback#

タイプ: ランタイム

コンテキストを保持するために domain プロパティを追加する MakeCallback のユーザーは、MakeCallback または CallbackScopeasync_context バリアント、または高レベルの AsyncResource クラスを使用する必要があります。

DEP0098: AsyncHooks エンベッダー AsyncResource.emitBeforeAsyncResource.emitAfter API#

タイプ: ライフサイクル終了

AsyncHooks によって提供される埋め込み API は、.emitBefore().emitAfter() メソッドを公開していますが、これらは誤って使用されやすく、回復不可能なエラーにつながる可能性があります。

代わりに、より安全で便利な代替手段である asyncResource.runInAsyncScope() API を使用してください。https://github.com/nodejs/node/pull/18513 を参照してください。

DEP0099: Async コンテキスト非対応の node::MakeCallback C++ API#

種類: コンパイル時

ネイティブアドオンで使用可能な node::MakeCallback API の特定のバージョンは非推奨です。async_context パラメーターを受け入れる API のバージョンを使用してください。

DEP0100: process.assert()#

タイプ: ランタイム

process.assert() は非推奨です。assert モジュールを使用してください。

これはドキュメント化された機能ではありませんでした。

DEP0101: --with-lttng#

タイプ: ライフサイクル終了

--with-lttng コンパイル時オプションは削除されました。

DEP0102: Buffer#(read|write) 操作での noAssert の使用#

タイプ: ライフサイクル終了

noAssert 引数は機能しなくなりました。noAssert の値に関係なく、すべての入力が検証されます。検証をスキップすると、見つけにくいエラーやクラッシュが発生する可能性があります。

DEP0103: process.binding('util').is[...] 型チェック#

種類: ドキュメントのみ(--pending-deprecation をサポート)

一般的に process.binding() は避けるべきです。特に型チェックメソッドは、util.types を使用して置き換えることができます。

この非推奨化は、process.binding() API の非推奨化(DEP0111)によって置き換えられました。

DEP0104: process.env の文字列強制変換#

種類: ドキュメントのみ(--pending-deprecation をサポート)

process.env に文字列以外のプロパティを代入する場合、代入された値は暗黙的に文字列に変換されます。この動作は、代入された値が文字列、ブール値、または数値でない場合、非推奨です。将来、このような代入はエラーをスローする可能性があります。process.env に代入する前に、プロパティを文字列に変換してください。

DEP0105: decipher.finaltol#

タイプ: ライフサイクル終了

decipher.finaltol() はドキュメント化されておらず、decipher.final() のエイリアスでした。このAPIは削除され、代わりにdecipher.final()を使用することをお勧めします。

DEP0106: crypto.createCiphercrypto.createDecipher#

タイプ: ランタイム

crypto.createCipher()crypto.createDecipher() は、弱いキー導出関数(ソルトのない MD5)と静的な初期化ベクトルを使用しているため、避ける必要があります。crypto.pbkdf2() または crypto.scrypt() を使用してランダムなソルトでキーを導出し、crypto.createCipheriv()crypto.createDecipheriv() を使用してそれぞれ CipherDecipher オブジェクトを取得することをお勧めします。

DEP0107: tls.convertNPNProtocols()#

タイプ: ライフサイクル終了

これは、Node.js コア以外で使用することを意図していない、ドキュメント化されていないヘルパー関数であり、NPN(Next Protocol Negotiation)サポートの削除によって廃止されました。

DEP0108: zlib.bytesRead#

タイプ: ランタイム

zlib.bytesWritten の非推奨エイリアスです。この元の名前は、エンジンの読み取ったバイト数として解釈することも理にかなっていたため選択されましたが、これらの名前で値を公開するNode.jsの他のストリームとは矛盾しています。

DEP0109: 無効なURLに対するhttphttps、およびtlsのサポート#

タイプ: ライフサイクル終了

以前はサポートされていた(しかし厳密には無効な)一部のURLは、レガシーのurl.parse()APIで受け入れられていたため、http.request()http.get()https.request()https.get()、およびtls.checkServerIdentity() APIを介して受け入れられていました。上記のAPIは現在、厳密に有効なURLを必要とするWHATWG URLパーサーを使用しています。無効なURLを渡すことは非推奨であり、将来サポートが削除されます。

DEP0110: vm.Script のキャッシュされたデータ#

タイプ: ドキュメントのみ

produceCachedData オプションは非推奨です。代わりに script.createCachedData() を使用してください。

DEP0111: process.binding()#

種類: ドキュメントのみ(--pending-deprecation をサポート)

process.binding() は、Node.js の内部コードでのみ使用するためのものです。

process.binding() は一般的に廃止予定の状態には達していませんが、ポリシーまたはパーミッションモデルが有効になっている場合は使用できません。

DEP0112: dgram のプライベートAPI#

タイプ: ランタイム

node:dgram モジュールには、以前はNode.jsコア以外からアクセスすることを意図していなかったいくつかのAPIが含まれていました:Socket.prototype._handleSocket.prototype._receivingSocket.prototype._bindStateSocket.prototype._queueSocket.prototype._reuseAddrSocket.prototype._healthCheck()Socket.prototype._stopReceiving()、およびdgram._createSocketHandle()

DEP0113: Cipher.setAuthTag()Decipher.getAuthTag()#

タイプ: ライフサイクル終了

Cipher.setAuthTag()Decipher.getAuthTag() は使用できなくなりました。これらはドキュメント化されておらず、呼び出されると例外をスローします。

DEP0114: crypto._toBuf()#

タイプ: ライフサイクル終了

crypto._toBuf()関数は、Node.jsコア以外のモジュールで使用するために設計されておらず、削除されました。

DEP0115: crypto.prng()crypto.pseudoRandomBytes()crypto.rng()#

種類: ドキュメントのみ(--pending-deprecation をサポート)

最近のNode.jsバージョンでは、crypto.randomBytes()crypto.pseudoRandomBytes()の間に違いはありません。後者は、ドキュメント化されていないエイリアスであるcrypto.prng()およびcrypto.rng()と共に非推奨となり、crypto.randomBytes()が推奨されます。将来のリリースで削除される可能性があります。

DEP0116: 従来のURL API#

タイプ: 非推奨の取り消し

従来のURL APIは非推奨です。これには、url.format()url.parse()url.resolve()、および従来のurlObjectが含まれます。WHATWG URL APIを使用してください。

DEP0117: ネイティブ暗号ハンドル#

タイプ: ライフサイクル終了

以前のバージョンのNode.jsでは、CipherDecipherDiffieHellmanDiffieHellmanGroupECDHHashHmacSignVerifyクラスの_handleプロパティを通じて、内部ネイティブオブジェクトへのハンドルが公開されていました。ネイティブオブジェクトの不適切な使用はアプリケーションのクラッシュにつながる可能性があるため、_handleプロパティは削除されました。

DEP0118: 偽のホスト名に対するdns.lookup()のサポート#

タイプ: ランタイム

以前のバージョンのNode.jsでは、下位互換性のために、dns.lookup(false)のような偽のホスト名でdns.lookup()がサポートされていました。この動作はドキュメント化されておらず、実世界のアプリケーションでは使用されていないと考えられています。将来のバージョンのNode.jsではエラーになります。

DEP0119: process.binding('uv').errname()プライベートAPI#

種類: ドキュメントのみ(--pending-deprecation をサポート)

process.binding('uv').errname()は非推奨です。util.getSystemErrorName()を使用してください。

DEP0120: Windowsパフォーマンスカウンターのサポート#

タイプ: ライフサイクル終了

WindowsパフォーマンスカウンターのサポートはNode.jsから削除されました。ドキュメント化されていないCOUNTER_NET_SERVER_CONNECTION()COUNTER_NET_SERVER_CONNECTION_CLOSE()COUNTER_HTTP_SERVER_REQUEST()COUNTER_HTTP_SERVER_RESPONSE()COUNTER_HTTP_CLIENT_REQUEST()COUNTER_HTTP_CLIENT_RESPONSE()関数は非推奨になりました。

DEP0121: net._setSimultaneousAccepts()#

タイプ: ランタイム

ドキュメント化されていないnet._setSimultaneousAccepts()関数は、もともとWindowsでnode:child_processおよびnode:clusterモジュールを使用する場合のデバッグとパフォーマンス調整を目的としていました。この関数は一般的に有用ではなく、削除されています。詳細は以下を参照してください。https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()#

タイプ: ランタイム

Server.prototype.setSecureContext()を使用してください。

DEP0123: TLS ServerNameをIPアドレスに設定#

タイプ: ランタイム

RFC 6066では、TLS ServerNameをIPアドレスに設定することは許可されていません。これは将来のバージョンで無視されます。

DEP0124: REPLServer.rliの使用#

タイプ: ライフサイクル終了

このプロパティは、インスタンス自体への参照です。

DEP0125: require('node:_stream_wrap')#

タイプ: ランタイム

node:_stream_wrapモジュールは非推奨です。

DEP0126: timers.active()#

タイプ: ランタイム

以前はドキュメント化されていなかったtimers.active()は非推奨です。公開されているドキュメントのtimeout.refresh()を使用してください。タイムアウトの再参照が必要な場合は、Node.js 10以降、パフォーマンスへの影響はありません。timeout.ref()を使用できます。

DEP0127: timers._unrefActive()#

タイプ: ランタイム

以前はドキュメント化されておらず、「プライベート」であったtimers._unrefActive()は非推奨です。公開されているドキュメントのtimeout.refresh()を使用してください。タイムアウトの参照解除が必要な場合は、Node.js 10以降、パフォーマンスへの影響はありません。timeout.unref()を使用できます。

DEP0128: 無効なmainエントリとindex.jsファイルを持つモジュール#

タイプ: ランタイム

無効なmainエントリ(例:./does-not-exist.js)を持ち、最上位ディレクトリにindex.jsファイルも持つモジュールは、index.jsファイルを解決します。これは非推奨であり、将来のNode.jsバージョンではエラーが発生します。

DEP0129: ChildProcess._channel#

タイプ: ランタイム

spawn()などの関数によって返される子プロセスのオブジェクトの_channelプロパティは、公開使用を意図したものではありません。代わりにChildProcess.channelを使用してください。

DEP0130: Module.createRequireFromPath()#

タイプ: ライフサイクル終了

代わりにmodule.createRequire()を使用してください。

DEP0131: 従来のHTTPパーサー#

タイプ: ライフサイクル終了

Node.js 12.0.0より前のバージョンでデフォルトで使用されていた従来のHTTPパーサーは非推奨であり、v13.0.0で削除されました。v13.0.0より前では、--http-parser=legacyコマンドラインフラグを使用して、従来のパーサーに戻すことができました。

DEP0132: コールバック付きのworker.terminate()#

タイプ: ランタイム

worker.terminate()にコールバックを渡すことは非推奨です。代わりに返されたPromiseまたはワーカーの'exit'イベントのリスナーを使用してください。

DEP0133: http connection#

タイプ: ドキュメントのみ

response.connectionよりもresponse.socketを、request.connectionよりもrequest.socketを優先してください。

DEP0134: process._tickCallback#

種類: ドキュメントのみ(--pending-deprecation をサポート)

process._tickCallbackプロパティは、公式にサポートされているAPIとしてドキュメント化されたことはありませんでした。

DEP0135: WriteStream.open()ReadStream.open()は内部APIです#

タイプ: ランタイム

WriteStream.open()ReadStream.open()は、ユーザーランドで使用するには意味のない、ドキュメント化されていない内部APIです。ファイルストリームは、常に対応するファクトリメソッドfs.createWriteStream()およびfs.createReadStream()を使用するか、オプションでファイルディスクリプターを渡して開く必要があります。

DEP0136: http finished#

タイプ: ドキュメントのみ

response.finishedは、response.end()が呼び出されたかどうかを示し、'finish'が発行され、基礎となるデータがフラッシュされたかどうかを示すものではありません。

あいまいさを避けるために、代わりにresponse.writableFinishedまたはresponse.writableEndedを適切に使用してください。

既存の動作を維持するには、response.finishedresponse.writableEndedに置き換える必要があります。

DEP0137: ガベージコレクションでのfs.FileHandleのクローズ#

タイプ: ランタイム

fs.FileHandleオブジェクトをガベージコレクションでクローズすることを許可することは非推奨です。将来、そうすると、プロセスを終了するスローエラーが発生する可能性があります。

fs.FileHandleが不要になった場合は、FileHandle.prototype.close()を使用して、すべてのfs.FileHandleオブジェクトを明示的にクローズしてください。

const fsPromises = require('node:fs').promises;
async function openAndClose() {
  let filehandle;
  try {
    filehandle = await fsPromises.open('thefile.txt', 'r');
  } finally {
    if (filehandle !== undefined)
      await filehandle.close();
  }
} 

DEP0138: process.mainModule#

タイプ: ドキュメントのみ

process.mainModuleはCommonJS専用機能であり、processグローバルオブジェクトは非CommonJS環境と共有されます。ECMAScriptモジュール内での使用はサポートされていません。

同じ目的を果たし、CommonJS環境でのみ使用可能であるため、require.mainが推奨されます。

DEP0139: 引数なしのprocess.umask()#

タイプ: ドキュメントのみ

引数なしでprocess.umask()を呼び出すと、プロセス全体のumaskが2回書き込まれます。これにより、スレッド間の競合状態が発生し、潜在的なセキュリティ脆弱性が発生します。安全でクロスプラットフォームの代替APIはありません。

DEP0140: request.abort()の代わりにrequest.destroy()を使用#

タイプ: ドキュメントのみ

request.abort()の代わりにrequest.destroy()を使用してください。

DEP0141: repl.inputStreamrepl.outputStream#

種類: ドキュメントのみ(--pending-deprecation をサポート)

node:replモジュールは、入力ストリームと出力ストリームを2回エクスポートしました。.inputStreamの代わりに.inputを、.outputStreamの代わりに.outputを使用してください。

DEP0142: repl._builtinLibs#

タイプ: ドキュメントのみ

node:repl モジュールは、組み込みモジュールの配列を含む _builtinLibs プロパティをエクスポートします。これまでは不完全でしたが、require('node:module').builtinModules を使用する方が適切です。

DEP0143: Transform._transformState#

タイプ: ランタイム 実装の簡素化により、Transform._transformState は今後のバージョンで不要になり、削除されます。

DEP0144: module.parent#

種類: ドキュメントのみ(--pending-deprecation をサポート)

CommonJS モジュールは、それを必要とした最初のモジュールに module.parent を使用してアクセスできます。この機能は、ECMAScript モジュールが存在する場合に一貫して動作しないため、また CommonJS モジュールグラフの不正確な表現を与えるため、非推奨とされています。

いくつかのモジュールは、それが現在のプロセスのエントリポイントかどうかを確認するためにこれを使用します。代わりに、require.mainmodule を比較することをお勧めします。

if (require.main === module) {
  // Code section that will run only if current file is the entry point.
} 

現在のモジュールを必要とした CommonJS モジュールを探す場合は、require.cachemodule.children を使用できます。

const moduleParents = Object.values(require.cache)
  .filter((m) => m.children.includes(module)); 

DEP0145: socket.bufferSize#

タイプ: ドキュメントのみ

socket.bufferSizewritable.writableLength のエイリアスです。

DEP0146: new crypto.Certificate()#

タイプ: ドキュメントのみ

crypto.Certificate() コンストラクタ は非推奨です。代わりに crypto.Certificate() の静的メソッド を使用してください。

DEP0147: fs.rmdir(path, { recursive: true })#

タイプ: ランタイム

Node.js の今後のバージョンでは、recursive オプションは fs.rmdirfs.rmdirSync、および fs.promises.rmdir では無視されます。

代わりに fs.rm(path, { recursive: true, force: true })fs.rmSync(path, { recursive: true, force: true })、または fs.promises.rm(path, { recursive: true, force: true }) を使用してください。

DEP0148: "exports" 内のフォルダーマッピング(末尾の "/"#

タイプ: ランタイム

サブパスエクスポート または サブパスインポート フィールドでサブパスフォルダーマッピングを定義するために末尾の "/" を使用することは非推奨です。代わりに サブパターンのパターン を使用してください。

DEP0149: http.IncomingMessage#connection#

タイプ: ドキュメントのみ。

message.socketmessage.connection より優先してください。

DEP0150: process.config の値の変更#

タイプ: ライフサイクル終了

process.config プロパティは、Node.js のコンパイル時設定へのアクセスを提供します。ただし、このプロパティは変更可能であるため、改ざんの対象となります。値を変更する機能は、Node.js の今後のバージョンで削除されます。

DEP0151: メインインデックスの検索と拡張子の検索#

タイプ: ランタイム

以前は、ES モジュールの解決時でも、index.js と拡張子の検索ルックアップが import 'pkg' メインエントリポイントの解決に適用されていました。

この非推奨化により、すべての ES モジュールメインエントリポイントの解決には、正確なファイル拡張子を持つ明示的な "exports" または "main" エントリ が必要になります。

DEP0152: 拡張 PerformanceEntry プロパティ#

タイプ: ランタイム

'gc''http2'、および 'http' <PerformanceEntry> オブジェクトタイプには、追加情報を提供する追加のプロパティが割り当てられています。これらのプロパティは、現在、PerformanceEntry オブジェクトの標準的な detail プロパティ内で使用できます。既存のアクセサーは非推奨となり、これ以上使用しないでください。

DEP0153: dns.lookupdnsPromises.lookup のオプションの型強制#

タイプ: ライフサイクル終了

dns.lookup()dnsPromises.lookup() で、family オプションに null 以外で非整数の値、hints オプションに null 以外で非数値の値、all オプションに null 以外で非ブール値、または verbatim オプションに null 以外で非ブール値を使用すると、ERR_INVALID_ARG_TYPE エラーがスローされます。

DEP0154: RSA-PSS キーペア生成オプション#

タイプ: ランタイム

'hash' オプションと 'mgf1Hash' オプションは、'hashAlgorithm''mgf1HashAlgorithm' に置き換えられました。

DEP0155: パターン指定子の解決における末尾のスラッシュ#

タイプ: ランタイム

import 'pkg/x/' のような末尾に "/" が付いた指定子の再マッピングは、パッケージの "exports""imports" パターンの解決では非推奨です。

DEP0156: http.aborted プロパティと 'abort''aborted' イベント#

タイプ: ドキュメントのみ

http.ClientRequesthttp.ServerResponse、および http.IncomingMessage はすべてストリームベースであるため、代わりに <Stream> API に移行してください。.aborted プロパティの代わりに stream.destroyed を確認し、'abort''aborted' イベントの代わりに 'close' をリッスンしてください。

.aborted プロパティと 'abort' イベントは、.abort() 呼び出しを検出する場合にのみ役立ちます。リクエストを早期に閉じるには、Stream の .destroy([error]) を使用し、その後 .destroyed プロパティと 'close' イベントを確認すると、同じ効果が得られます。受信側も、それが中止された破壊か正常な破壊かどうかを取得するために、http.IncomingMessagereadable.readableEnded 値を確認する必要があります。

DEP0157: ストリームでの Thenable サポート#

タイプ: ライフサイクル終了

Node.js ストリームの文書化されていない機能として、実装メソッドで Thenable をサポートしていました。これは現在非推奨であり、代わりにコールバックを使用し、ストリーム実装メソッドに非同期関数を使用しないでください。

この機能により、ユーザーがコールバックスタイルで関数を実装しますが、たとえば非同期メソッドを使用すると、Promise とコールバックのセマンティクスを混在させることは無効であるためエラーが発生するという予期せぬ問題が発生しました。

const w = new Writable({
  async final(callback) {
    await someOp();
    callback();
  },
}); 

DEP0158: buffer.slice(start, end)#

タイプ: ドキュメントのみ

このメソッドは、Buffer のスーパークラスである Uint8Array.prototype.slice() と互換性がないため、非推奨とされました。

代わりに、同じことを行う buffer.subarray を使用してください。

DEP0159: ERR_INVALID_CALLBACK#

タイプ: ライフサイクル終了

値の型検証に使用されるエラーにさらに混乱が生じるため、このエラーコードは削除されました。

DEP0160: process.on('multipleResolves', handler)#

タイプ: ランタイム。

このイベントは、V8 の Promise コンビネーターでは機能しなかったため、非推奨とされました。これにより、その有用性が低下しました。

DEP0161: process._getActiveRequests()process._getActiveHandles()#

タイプ: ドキュメントのみ

process._getActiveHandles() 関数と process._getActiveRequests() 関数は、公開用を意図したものではなく、今後のリリースで削除される可能性があります。

アクティブなリソースの実際の参照ではなく、アクティブなリソースの種類のリストを取得するには、process.getActiveResourcesInfo() を使用してください。

DEP0162: fs.write()fs.writeFileSync() の文字列への強制変換#

タイプ: ライフサイクル終了

fs.write()fs.writeFile()fs.appendFile()fs.writeFileSync()、および fs.appendFileSync() の第2パラメーターとして渡される、独自の toString プロパティを持つオブジェクトの暗黙的な強制変換は非推奨です。それらをプリミティブ文字列に変換してください。

DEP0163: channel.subscribe(onMessage)channel.unsubscribe(onMessage)#

タイプ: ドキュメントのみ

これらのメソッドは、チャネル参照をイベントを受信するのに十分な長さだけ保持しない方法で使用できるため、非推奨とされました。

代わりに、同じことを行う diagnostics_channel.subscribe(name, onMessage) または diagnostics_channel.unsubscribe(name, onMessage) を使用してください。

DEP0164: process.exit(code)process.exitCode の整数への強制変換#

タイプ: ライフサイクル終了

process.exit()code パラメーターの値として、また process.exitCode に割り当てる値として、undefinednull、整数、整数文字列(例:'1')以外の値は非推奨です。

DEP0165: --trace-atomics-wait#

タイプ: ドキュメントのみ

--trace-atomics-wait フラグは非推奨です。

DEP0166: インポートおよびエクスポートターゲットにおける二重スラッシュ#

タイプ: ランタイム

二重スラッシュ(「/」または「\」)を含むパスにマップされるパッケージのインポートおよびエクスポートターゲットは非推奨となり、今後のリリースでは解決策検証エラーが発生します。この非推奨化は、スラッシュで始まりまたは終わるパターンマッチにも適用されます。

DEP0167: 脆弱なDiffieHellmanGroupインスタンス(modp1modp2modp5#

タイプ: ドキュメントのみ

よく知られたMODPグループであるmodp1modp2、およびmodp5は、現実的な攻撃に対して安全ではないため非推奨です。詳細はRFC 8247 セクション 2.4を参照してください。

これらのグループは、Node.jsの今後のバージョンで削除される可能性があります。これらのグループに依存するアプリケーションは、より強力なMODPグループの使用を検討する必要があります。

DEP0168: Node-APIコールバックにおける未処理の例外#

タイプ: ランタイム

Node-APIコールバックにおける未処理例外の暗黙的な抑制は、非推奨となりました。

--force-node-api-uncaught-exceptions-policyフラグを設定して、Node-APIコールバックで例外が処理されない場合に、Node.jsが'uncaughtException'イベントを発行するように強制します。

DEP0169: セキュリティ上の問題があるurl.parse()#

種類: ドキュメントのみ(--pending-deprecation をサポート)

url.parse()の動作は標準化されておらず、セキュリティ上の問題につながる可能性のあるエラーが発生しやすいです。WHATWG URL APIを使用してください。url.parse()の脆弱性に対してCVEは発行されません。

DEP0170: url.parse()を使用する場合の無効なポート#

タイプ: ランタイム

url.parse()は、数値でないポートを持つURLを受け入れます。この動作により、予期しない入力によってホスト名スプーフィングが発生する可能性があります。これらのURLは、WHATWG URL APIですでにそうであるように、Node.jsの今後のバージョンではエラーをスローします。

DEP0171: http.IncomingMessageヘッダーとトレーラーのセッター#

タイプ: ドキュメントのみ

Node.jsの今後のバージョンでは、message.headersmessage.headersDistinctmessage.trailers、およびmessage.trailersDistinctは読み取り専用になります。

DEP0172: AsyncResourceバインド関数のasyncResourceプロパティ#

タイプ: ランタイム

Node.jsの今後のバージョンでは、関数がAsyncResourceにバインドされた場合、asyncResourceプロパティは追加されなくなります。

DEP0173: assert.CallTrackerクラス#

タイプ: ドキュメントのみ

Node.jsの今後のバージョンでは、assert.CallTrackerは削除されます。mockヘルパー関数などの代替手段を検討してください。

DEP0174: Promiseを返す関数へのpromisifyの呼び出し#

タイプ: ランタイム

util.promisifyをPromiseを返す関数に呼び出すと、そのPromiseの結果が無視され、未処理のPromise拒否につながる可能性があります。

DEP0175: util.toUSVString#

タイプ: ドキュメントのみ

util.toUSVString() APIは非推奨です。String.prototype.toWellFormedを使用してください。

DEP0176: fs.F_OKfs.R_OKfs.W_OKfs.X_OK#

タイプ: ドキュメントのみ

node:fsで直接公開されているF_OKR_OKW_OK、およびX_OKゲッターは非推奨です。代わりにfs.constantsまたはfs.promises.constantsから取得してください。

DEP0177: util.types.isWebAssemblyCompiledModule#

タイプ: ライフサイクル終了

util.types.isWebAssemblyCompiledModule APIは削除されました。代わりにvalue instanceof WebAssembly.Moduleを使用してください。

DEP0178: dirent.path#

タイプ: ドキュメントのみ

dirent.pathは、リリースライン間の一貫性がないため非推奨です。代わりにdirent.parentPathを使用してください。

DEP0179: Hashコンストラクタ#

タイプ: ドキュメントのみ

Hash()またはnew Hash()を使用してHashクラスを直接呼び出すことは、内部実装であり、公開用ではないため非推奨です。Hashインスタンスを作成するには、crypto.createHash()メソッドを使用してください。