Skip to content

コマンドライン API

Node.js には様々な CLI オプションが付属しています。これらのオプションは、組み込みのデバッグ機能、スクリプトを実行する複数の方法、およびその他の役立つランタイムオプションを公開します。

このドキュメントをターミナルでマニュアルページとして表示するには、man node を実行してください。

概要

node [options] [V8 options] [\<program-entry-point\> | -e "script" | -] [--] [arguments]

node inspect [\<program-entry-point\> | -e "script" | \<host\>:\<port\>] …

node --v8-options

引数なしで実行すると、REPL が起動します。

node inspect の詳細については、デバッガ のドキュメントを参照してください。

プログラムエントリポイント

プログラムエントリポイントは、仕様のような文字列です。文字列が絶対パスでない場合、現在の作業ディレクトリからの相対パスとして解決されます。そのパスは、CommonJS モジュールローダーによって解決されます。対応するファイルが見つからない場合、エラーがスローされます。

ファイルが見つかった場合、そのパスは、次のいずれかの条件の下で、ES モジュールローダーに渡されます。

  • プログラムが、--import などの ECMAScript モジュールローダーでエントリポイントを強制的にロードするコマンドラインフラグで開始された。
  • ファイルに .mjs 拡張子が付いている。
  • ファイルに .cjs 拡張子が付いておらず、最も近い親の package.json ファイルに、値が "module" のトップレベルの "type" フィールドが含まれている。

それ以外の場合、ファイルは CommonJS モジュールローダーを使用してロードされます。詳細については、モジュールローダーを参照してください。

ECMAScript モジュールローダーのエントリポイントの注意点

ロード時、ES モジュールローダーはプログラムエントリポイントをロードしますが、node コマンドは、.js.mjs、または .cjs 拡張子を持つファイル、および --experimental-wasm-modules が有効になっている場合は .wasm 拡張子を持つファイルのみを入力として受け入れます。

オプション

[履歴]

バージョン変更点
v10.12.0Node.js オプションでも、V8 オプションに加えて、ダッシュの代わりにアンダースコアを使用できるようになりました。

V8 オプションを含むすべてのオプションで、単語はダッシュ (-) とアンダースコア (_) の両方で区切ることができます。たとえば、--pending-deprecation--pending_deprecation と同等です。

--max-http-header-size などの単一の値を取るオプションが複数回渡された場合、最後に渡された値が使用されます。コマンドラインからのオプションは、NODE_OPTIONS 環境変数を介して渡されたオプションよりも優先されます。

-

追加: v8.0.0

stdin のエイリアス。 他のコマンドラインユーティリティでの - の使用と同様に、スクリプトが stdin から読み込まれ、残りのオプションがそのスクリプトに渡されることを意味します。

--

追加: v6.11.0

Node.js オプションの終わりを示します。 残りの引数をスクリプトに渡します。 これより前にスクリプトファイル名または eval/print スクリプトが指定されていない場合、次の引数がスクリプトファイル名として使用されます。

--abort-on-uncaught-exception

追加: v0.10.8

終了する代わりにアボートすると、デバッガ(lldbgdbmdbなど)を使用した事後分析のためにコアファイルが生成されます。

このフラグが渡された場合でも、process.setUncaughtExceptionCaptureCallback()(およびそれを使用する node:domain モジュールの使用を通じて)を通じて、アボートしないように動作を設定できます。

--allow-addons

追加: v21.6.0, v20.12.0

[安定版: 1 - 実験的]

安定版: 1 安定版: 1.1 - 活発な開発

Permission Modelを使用する場合、プロセスはデフォルトでネイティブアドオンを使用できません。 これを試みると、Node.js の起動時にユーザーが明示的に --allow-addons フラグを渡さない限り、ERR_DLOPEN_DISABLED がスローされます。

例:

js
// ネイティブアドオンを require しようとします
require('nodejs-addon-example');
bash
$ node --permission --allow-fs-read=* index.js
node:internal/modules/cjs/loader:1319
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: Cannot load native addon because loading addons is disabled.
    at Module._extensions..node (node:internal/modules/cjs/loader:1319:18)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Module.require (node:internal/modules/cjs/loader:1115:19)
    at require (node:internal/modules/helpers:130:18)
    at Object.<anonymous> (/home/index.js:1:15)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12) {
  code: 'ERR_DLOPEN_DISABLED'
}

--allow-child-process

Added in: v20.0.0

[Stable: 1 - Experimental]

Stable: 1 Stability: 1.1 - 活発な開発

Permission Modelを使用する場合、プロセスはデフォルトでは子プロセスを生成できません。Node.jsの起動時にユーザーが明示的に--allow-child-processフラグを渡さない限り、子プロセスを生成しようとするとERR_ACCESS_DENIEDがスローされます。

例:

js
const childProcess = require('node:child_process');
// パーミッションを回避しようとします
childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("/new-file", "example")']);
bash
$ node --permission --allow-fs-read=* index.js
node:internal/child_process:388
  const err = this._handle.spawn(options);
                           ^
Error: Access to this API has been restricted
    at ChildProcess.spawn (node:internal/child_process:388:28)
    at Object.spawn (node:child_process:723:9)
    at Object.<anonymous> (/home/index.js:3:14)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
    at Module.load (node:internal/modules/cjs/loader:998:32)
    at Module._load (node:internal/modules/cjs/loader:839:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'ChildProcess'
}

--allow-fs-read

[History]

VersionChanges
v23.5.0Permission Modelと--allow-fsフラグが安定版になりました。
v20.7.0カンマ(,)で区切られたパスは許可されなくなりました。
v20.0.0Added in: v20.0.0

[Stable: 2 - Stable]

Stable: 2 Stability: 2 - 安定版。

このフラグは、Permission Modelを使用して、ファイルシステムの読み取りパーミッションを設定します。

--allow-fs-readフラグの有効な引数は次のとおりです。

  • * - すべてのFileSystemRead操作を許可します。
  • 複数の--allow-fs-readフラグを使用すると、複数のパスを許可できます。例:--allow-fs-read=/folder1/ --allow-fs-read=/folder1/

例は、File System Permissionsドキュメントにあります。

イニシャライザモジュールも許可する必要があります。次の例を考えてみてください。

bash
$ node --permission index.js

Error: Access to this API has been restricted
    at node:internal/main/run_main_module:23:47 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'FileSystemRead',
  resource: '/Users/rafaelgss/repos/os/node/index.js'
}

プロセスはindex.jsモジュールにアクセスする必要があります。

bash
node --permission --allow-fs-read=/path/to/index.js index.js

--allow-fs-write

[履歴]

バージョン変更点
v23.5.0パーミッションモデルと --allow-fs フラグが安定版になりました。
v20.7.0カンマ (,) で区切られたパスは許可されなくなりました。
v20.0.0v20.0.0 で追加されました

[安定版: 2 - 安定]

安定版: 2 安定性: 2 - 安定。

このフラグは、パーミッションモデルを使用してファイルシステムの書き込みパーミッションを構成します。

--allow-fs-write フラグの有効な引数は次のとおりです。

  • * - すべての FileSystemWrite 操作を許可します。
  • 複数の --allow-fs-write フラグを使用すると、複数のパスを許可できます。 例:--allow-fs-write=/folder1/ --allow-fs-write=/folder1/

カンマ (,) で区切られたパスは許可されなくなりました。 カンマ付きの単一のフラグを渡すと、警告が表示されます。

例は、ファイルシステムパーミッションのドキュメントにあります。

--allow-wasi

追加: v22.3.0, v20.16.0

[安定版: 1 - 試験的]

安定版: 1 安定性: 1.1 - 活発な開発

パーミッションモデルを使用する場合、プロセスはデフォルトで WASI インスタンスを作成できません。 セキュリティ上の理由から、ユーザーがメインの Node.js プロセスで明示的にフラグ --allow-wasi を渡さない限り、呼び出しは ERR_ACCESS_DENIED をスローします。

例:

js
const { WASI } = require('node:wasi');
// パーミッションをバイパスしようとする
new WASI({
  version: 'preview1',
  // ファイルシステム全体をマウントしようとする
  preopens: {
    '/': '/',
  },
});
bash
$ node --permission --allow-fs-read=* index.js

Error: Access to this API has been restricted
    at node:internal/main/run_main_module:30:49 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'WASI',
}

--allow-worker

追加: v20.0.0

[安定版: 1 - 試験的]

安定版: 1 安定性: 1.1 - 活発な開発

パーミッションモデルを使用する場合、プロセスはデフォルトで worker スレッドを作成できません。 セキュリティ上の理由から、ユーザーがメインの Node.js プロセスで明示的にフラグ --allow-worker を渡さない限り、呼び出しは ERR_ACCESS_DENIED をスローします。

例:

js
const { Worker } = require('node:worker_threads');
// パーミッションをバイパスしようとする
new Worker(__filename);
bash
$ node --permission --allow-fs-read=* index.js

Error: Access to this API has been restricted
    at node:internal/main/run_main_module:17:47 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'WorkerThreads'
}

--build-snapshot

追加: v18.8.0

[Stable: 1 - Experimental]

Stable: 1 安定度: 1 - 試験的

プロセスが終了するときにスナップショット blob を生成してディスクに書き込みます。これは後で --snapshot-blob でロードできます。

スナップショットを構築するときに、--snapshot-blob が指定されていない場合、生成された blob はデフォルトで現在の作業ディレクトリの snapshot.blob に書き込まれます。それ以外の場合は、--snapshot-blob で指定されたパスに書き込まれます。

bash
$ echo "globalThis.foo = 'I am from the snapshot'" > snapshot.js

# アプリケーションを初期化し、その状態を snapshot.blob にスナップショットするために snapshot.js を実行します。 {#run-snapshotjs-to-initialize-the-application-and-snapshot-the}
$ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js

$ echo "console.log(globalThis.foo)" > index.js

# 生成されたスナップショットをロードし、index.js からアプリケーションを起動します。 {#state-of-it-into-snapshotblob}
$ node --snapshot-blob snapshot.blob index.js
I am from the snapshot

v8.startupSnapshot API を使用して、スナップショットの構築時にエントリポイントを指定できます。これにより、デシリアライズ時に追加のエントリスクリプトは不要になります。

bash
$ echo "require('v8').startupSnapshot.setDeserializeMainFunction(() => console.log('I am from the snapshot'))" > snapshot.js
$ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js
$ node --snapshot-blob snapshot.blob
I am from the snapshot

詳細については、v8.startupSnapshot API のドキュメントを確認してください。

現在、実行時スナップショットのサポートは試験的です。

--build-snapshot-config

追加: v21.6.0, v20.12.0

[Stable: 1 - Experimental]

Stable: 1 安定度: 1 - 試験的

スナップショットの作成動作を構成する JSON 構成ファイルへのパスを指定します。

現在、次のオプションがサポートされています。

  • builder <string> 必須。--build-snapshot がメインスクリプト名として builder で渡された場合と同様に、スナップショットを構築する前に実行されるスクリプトの名前を提供します。
  • withoutCodeCache <boolean> オプション。コードキャッシュを含めると、スナップショットに含まれる関数のコンパイルに費やす時間を短縮できますが、スナップショットのサイズが大きくなり、スナップショットの移植性が損なわれる可能性があります。

このフラグを使用する場合、コマンドラインで提供される追加のスクリプトファイルは実行されず、代わりに通常のコマンドライン引数として解釈されます。

-c, --check

[履歴]

バージョン変更点
v10.0.0--requireオプションがファイルのチェック時にサポートされるようになりました。
v5.0.0, v4.2.0Added in: v5.0.0, v4.2.0

実行せずにスクリプトの構文をチェックします。

--completion-bash

Added in: v10.12.0

Node.js のソース可能な bash 補完スクリプトを出力します。

bash
node --completion-bash > node_bash_completion
source node_bash_completion

-C condition, --conditions=condition

[履歴]

バージョン変更点
v22.9.0, v20.18.0このフラグは実験的ではなくなりました。
v14.9.0, v12.19.0Added in: v14.9.0, v12.19.0

[安定版: 2 - 安定]

安定版: 2 安定性: 2 - 安定

カスタムの条件付きエクスポート解決条件を提供します。

任意の数のカスタム文字列条件名を許可します。

"node""default""import""require"のデフォルトの Node.js 条件は、常に定義どおりに適用されます。

たとえば、「development」解決でモジュールを実行するには:

bash
node -C development app.js

--cpu-prof

[履歴]

バージョン変更点
v22.4.0, v20.16.0--cpu-profフラグが安定版になりました。
v12.0.0Added in: v12.0.0

[安定版: 2 - 安定]

安定版: 2 安定性: 2 - 安定

起動時に V8 CPU プロファイラを開始し、終了前に CPU プロファイルをディスクに書き込みます。

--cpu-prof-dirが指定されていない場合、生成されたプロファイルは現在の作業ディレクトリに配置されます。

--cpu-prof-nameが指定されていない場合、生成されたプロファイルの名前は CPU.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.cpuprofile になります。

bash
$ node --cpu-prof index.js
$ ls *.cpuprofile
CPU.20190409.202950.15293.0.0.cpuprofile

--cpu-prof-dir

[履歴]

バージョン変更点
v22.4.0, v20.16.0--cpu-profフラグが安定版になりました。
v12.0.0Added in: v12.0.0

[安定版: 2 - 安定]

安定版: 2 安定性: 2 - 安定

--cpu-profによって生成された CPU プロファイルを配置するディレクトリを指定します。

デフォルト値は、--diagnostic-dir コマンドラインオプションによって制御されます。

--cpu-prof-interval

[履歴]

バージョン変更点
v22.4.0, v20.16.0--cpu-prof フラグが安定版になりました。
v12.2.0追加: v12.2.0

[安定版: 2 - 安定]

安定版: 2 安定版: 2 - 安定

--cpu-prof で生成される CPU プロファイルのサンプリング間隔をマイクロ秒単位で指定します。 デフォルトは 1000 マイクロ秒です。

--cpu-prof-name

[履歴]

バージョン変更点
v22.4.0, v20.16.0--cpu-prof フラグが安定版になりました。
v12.0.0追加: v12.0.0

[安定版: 2 - 安定]

安定版: 2 安定版: 2 - 安定

--cpu-prof で生成される CPU プロファイルの名前を指定します。

--diagnostic-dir=directory

すべての診断出力ファイルを書き込むディレクトリを設定します。 デフォルトは現在の作業ディレクトリです。

次のデフォルトの出力ディレクトリに影響します。

--disable-proto=mode

追加: v13.12.0, v12.17.0

Object.prototype.__proto__ プロパティを無効にします。 modedelete の場合、プロパティは完全に削除されます。 modethrow の場合、プロパティへのアクセスはコード ERR_PROTO_ACCESS で例外をスローします。

--disable-warning=code-or-type

[安定版: 1 - 実験的]

安定版: 1 安定版: 1 - 活発な開発

追加: v21.3.0, v20.11.0

code または type で特定のプロセスの警告を無効にします。

process.emitWarning() から出力される警告には、code および type が含まれている場合があります。 このオプションは、一致する code または type を持つ警告を出力しません。

非推奨の警告のリスト。

Node.js コアの警告の種類は、DeprecationWarning および ExperimentalWarning です。

たとえば、次のスクリプトは、node --disable-warning=DEP0025 で実行すると、DEP0025 require('node:sys') を出力しません。

js
import sys from 'node:sys';
js
const sys = require('node:sys');

たとえば、次のスクリプトは、DEP0025 require('node:sys') を出力しますが、node --disable-warning=ExperimentalWarning で実行すると、(<=v21 の ExperimentalWarning: vm.measureMemory は実験的な機能です など) 実験的な警告は出力しません。

js
import sys from 'node:sys';
import vm from 'node:vm';

vm.measureMemory();
js
const sys = require('node:sys');
const vm = require('node:vm');

vm.measureMemory();

--disable-wasm-trap-handler

追加: v22.2.0, v20.15.0

デフォルトでは、Node.js はトラップハンドラーベースの WebAssembly バウンドチェックを有効にします。その結果、V8 は WebAssembly からコンパイルされたコードにインラインバウンドチェックを挿入する必要がなくなり、WebAssembly の実行が大幅に高速化される可能性があります。ただし、この最適化には大きな仮想メモリケージ(現在は 10GB)の割り当てが必要です。システム構成またはハードウェアの制限により、Node.js プロセスが十分に大きな仮想メモリアドレス空間にアクセスできない場合、ユーザーはこの仮想メモリケージで割り当てを伴う WebAssembly を実行できなくなり、メモリ不足エラーが発生します。

bash
$ ulimit -v 5000000
$ node -p "new WebAssembly.Memory({ initial: 10, maximum: 100 });"
[eval]:1
new WebAssembly.Memory({ initial: 10, maximum: 100 });
^

RangeError: WebAssembly.Memory(): could not allocate memory
    at [eval]:1:1
    at runScriptInThisContext (node:internal/vm:209:10)
    at node:internal/process/execution:118:14
    at [eval]-wrapper:6:24
    at runScript (node:internal/process/execution:101:62)
    at evalScript (node:internal/process/execution:136:3)
    at node:internal/main/eval_string:49:3

--disable-wasm-trap-handler はこの最適化を無効にするため、Node.js プロセスで利用可能な仮想メモリアドレス空間が V8 WebAssembly メモリケージに必要なものよりも小さい場合でも、ユーザーは少なくとも(最適ではないパフォーマンスで)WebAssembly を実行できます。

--disallow-code-generation-from-strings

追加: v9.8.0

文字列からコードを生成する evalnew Function のような組み込み言語機能を例外をスローするようにします。これは Node.js node:vm モジュールには影響しません。

--dns-result-order=order

[履歴]

バージョン変更
v22.1.0, v20.13.0ipv6first がサポートされるようになりました。
v17.0.0デフォルト値を verbatim に変更しました。
v16.4.0, v14.18.0追加: v16.4.0, v14.18.0

dns.lookup()dnsPromises.lookup()order のデフォルト値を設定します。値は次のいずれかになります。

  • ipv4first: デフォルトの orderipv4first に設定します。
  • ipv6first: デフォルトの orderipv6first に設定します。
  • verbatim: デフォルトの orderverbatim に設定します。

デフォルトは verbatim であり、dns.setDefaultResultOrder()--dns-result-order よりも優先度が高くなります。

--enable-fips

Added in: v6.0.0

起動時に FIPS 準拠の暗号化を有効にします。(Node.js が FIPS 互換の OpenSSL に対してビルドされている必要があります。)

--enable-network-family-autoselection

Added in: v18.18.0

接続オプションで明示的に無効にしない限り、family 自動選択アルゴリズムを有効にします。

--enable-source-maps

[履歴]

バージョン変更点
v15.11.0, v14.18.0この API は実験的ではなくなりました。
v12.12.0Added in: v12.12.0

スタックトレースの Source Map v3 サポートを有効にします。

TypeScript などのトランスパイラを使用する場合、アプリケーションによってスローされるスタックトレースは、元のソース位置ではなく、トランスパイルされたコードを参照します。--enable-source-maps は、ソースマップのキャッシュを有効にし、元のソースファイルに対するスタックトレースを報告するように最善を尽くします。

Error.prepareStackTrace をオーバーライドすると、--enable-source-maps がスタックトレースを変更できなくなる場合があります。ソースマップでスタックトレースを変更するには、オーバーライド関数で元の Error.prepareStackTrace の結果を呼び出して返します。

js
const originalPrepareStackTrace = Error.prepareStackTrace;
Error.prepareStackTrace = (error, trace) => {
  // エラーとトレースを変更し、元の Error.prepareStackTrace でスタックトレースをフォーマットします。
  return originalPrepareStackTrace(error, trace);
};

注: ソースマップを有効にすると、Error.stack にアクセスするときにアプリケーションにレイテンシが発生する可能性があります。アプリケーションで Error.stack に頻繁にアクセスする場合は、--enable-source-maps のパフォーマンスへの影響を考慮してください。

--entry-url

Added in: v23.0.0

[安定版: 1 - 実験的]

安定版: 1 安定版: 1 - 実験的

存在する場合、Node.js はエントリポイントをパスではなく URL として解釈します。

ECMAScript モジュール の解決規則に従います。

URL 内のクエリパラメータまたはハッシュは、import.meta.url を介してアクセスできます。

bash
node --entry-url 'file:///path/to/file.js?queryparams=work#and-hashes-too'
node --entry-url --experimental-strip-types 'file.ts?query#hash'
node --entry-url 'data:text/javascript,console.log("Hello")'

--env-file-if-exists=config

Added in: v22.9.0

挙動は--env-fileと同じですが、ファイルが存在しない場合にエラーはスローされません。

--env-file=config

[Stable: 1 - Experimental]

Stable: 1 安定度: 1.1 - 活発な開発

[沿革]

バージョン変更点
v21.7.0, v20.12.0複数行の値のサポートを追加。
v20.6.0Added in: v20.6.0

現在のディレクトリを基準としたファイルから環境変数をロードし、process.env上のアプリケーションで利用できるようにします。Node.jsを構成する環境変数NODE_OPTIONSなど)は、パースされ適用されます。同じ変数が環境とファイルの両方で定義されている場合、環境の値が優先されます。

複数の--env-file引数を渡すことができます。後続のファイルは、以前のファイルで定義された既存の変数を上書きします。

ファイルが存在しない場合、エラーがスローされます。

bash
node --env-file=.env --env-file=.development.env index.js

ファイルの形式は、環境変数名と値を = で区切ったキーと値のペアを1行に1つ記述する必要があります。

text
PORT=3000

# の後のテキストはコメントとして扱われます。

text
# これはコメントです {#--env-file=config}
PORT=3000 # これもコメントです

値は、```, " または ' の引用符で始まり、終わることができます。それらは値から省略されます。

text
USERNAME="nodejs" # `nodejs` が値になります。

複数行の値がサポートされています。

text
MULTI_LINE="THIS IS
A MULTILINE"
# `THIS IS\nA MULTILINE` が値になります。 {#this-is-a-comment}

キーの前の Export キーワードは無視されます。

text
export USERNAME="nodejs" # `nodejs` が値になります。

存在しない可能性のあるファイルから環境変数をロードする場合は、代わりに--env-file-if-existsフラグを使用できます。

-e, --eval "script" {#will-result-in-this-is\na-multiline-as-the-value}

[履歴]

バージョン変更点
v22.6.0Eval は実験的な型削除をサポートするようになりました。
v5.11.0組み込みライブラリが事前定義された変数として利用可能になりました。
v0.5.2追加: v0.5.2

以下の引数を JavaScript として評価します。REPL で事前定義されているモジュールも script で使用できます。

Windows では、cmd.exe を使用している場合、引用符としてダブルクォート " のみ認識するため、シングルクォートは正しく機能しません。Powershell または Git bash では、'" の両方が使用可能です。

--experimental-strip-types を渡すことで、インライン型を含むコードを実行できます。

--experimental-async-context-frame

追加: v22.7.0

[Stable: 1 - 実験的]

Stable: 1 安定度: 1 - 実験的

async_hooks に依存するデフォルトの実装ではなく、AsyncContextFrame によって裏打ちされた AsyncLocalStorage の使用を有効にします。この新しいモデルは非常に異なる方法で実装されているため、アプリケーション内でのコンテキストデータの流れに違いがある可能性があります。そのため、本番環境で使用する前に、この変更によってアプリケーションの動作に影響がないことを確認することをお勧めします。

--experimental-eventsource

追加: v22.3.0, v20.18.0

グローバルスコープでの EventSource Web API の公開を有効にします。

--experimental-import-meta-resolve

[履歴]

バージョン変更点
v20.6.0, v18.19.0同期的な import.meta.resolve がデフォルトで利用可能になり、以前サポートされていた実験的な第2引数を有効にするためのフラグが保持されました。
v13.9.0, v12.16.2追加: v13.9.0, v12.16.2

実験的な import.meta.resolve() の親 URL サポートを有効にします。これにより、コンテキストに応じた解決のために2番目の parentURL 引数を渡すことができます。

以前は、import.meta.resolve 機能全体を制御していました。

--experimental-loader=module

[履歴]

バージョン変更
v12.11.1このフラグの名前が --loader から --experimental-loader に変更されました。
v8.8.0追加: v8.8.0

エクスポートされたモジュールカスタマイズフックを含む module を指定します。module は、import 指定子として受け入れられる任意の文字列で構いません。

--experimental-network-inspection

追加: v22.6.0, v20.18.0

[安定度: 1 - 試験的]

安定度: 1 安定度: 1 - 試験的

Chrome DevToolsを使用したネットワークインスペクションの実験的サポートを有効にします。

--experimental-print-required-tla

追加: v22.0.0, v20.17.0

require() されているESモジュールにトップレベルのawaitが含まれている場合、このフラグを使用すると、Node.jsがモジュールを評価し、トップレベルのawaitを見つけようとし、それらの場所を出力して、ユーザーがそれらを見つけやすくすることができます。

--experimental-require-module

[履歴]

バージョン変更
v23.0.0これはデフォルトで true になりました。
v22.0.0, v20.17.0追加: v22.0.0, v20.17.0

[安定度: 1 - 試験的]

安定度: 1 安定度: 1 - 活発な開発

require() で同期的なESモジュールグラフのロードをサポートします。

require() を使用した ECMAScript モジュールの読み込み を参照してください。

--experimental-sea-config

追加: v20.0.0

[安定度: 1 - 試験的]

安定度: 1 安定度: 1 - 試験的

このフラグを使用して、Node.jsバイナリに注入して単一実行可能アプリケーションを生成できるblobを生成します。詳細については、この構成に関するドキュメントを参照してください。

--experimental-shadow-realm

追加: v19.0.0, v18.13.0

このフラグを使用して、ShadowRealm のサポートを有効にします。

--experimental-strip-types

追加: v22.6.0

[安定版: 1 - 実験的]

安定版: 1 安定性: 1.1 - 活発な開発

TypeScriptファイルの実験的な型ストリッピングを有効にします。詳細については、TypeScript型ストリッピングのドキュメントを参照してください。

--experimental-test-coverage

[履歴]

バージョン変更点
v20.1.0, v18.17.0このオプションは--testで使用できます。
v19.7.0, v18.15.0追加: v19.7.0, v18.15.0

node:testモジュールと組み合わせて使用​​すると、コードカバレッジレポートがテストランナー出力の一部として生成されます。テストが実行されない場合、カバレッジレポートは生成されません。詳細については、テストからコードカバレッジを収集するのドキュメントを参照してください。

--experimental-test-isolation=mode

追加: v22.8.0

[安定版: 1 - 実験的]

安定版: 1 安定性: 1.0 - 初期開発

テストランナーで使用されるテスト分離の種類を設定します。 mode'process'の場合、各テストファイルは個別の子プロセスで実行されます。 mode'none'の場合、すべてのテストファイルはテストランナーと同じプロセスで実行されます。デフォルトの分離モードは'process'です。このフラグは、--testフラグが存在しない場合は無視されます。詳細については、テストランナーの実行モデルセクションを参照してください。

--experimental-test-module-mocks

追加: v22.3.0, v20.18.0

[安定版: 1 - 実験的]

安定版: 1 安定性: 1.0 - 初期開発

テストランナーでモジュールモックを有効にします。

--experimental-transform-types

Added in: v22.7.0

[Stable: 1 - Experimental]

Stable: 1 Stability: 1.1 - 開発中

TypeScript のみの構文を JavaScript コードに変換できるようにします。--experimental-strip-types--enable-source-maps を暗黙的に指定します。

--experimental-vm-modules

Added in: v9.6.0

node:vm モジュールで実験的な ES モジュールサポートを有効にします。

--experimental-wasi-unstable-preview1

[History]

VersionChanges
v20.0.0, v18.17.0このオプションは、WASI がデフォルトで有効になっているため不要になりましたが、引き続き渡すことができます。
v13.6.0--experimental-wasi-unstable-preview0 から --experimental-wasi-unstable-preview1 に変更されました。
v13.3.0, v12.16.0Added in: v13.3.0, v12.16.0

実験的な WebAssembly System Interface (WASI) サポートを有効にします。

--experimental-wasm-modules

Added in: v12.3.0

実験的な WebAssembly モジュールサポートを有効にします。

--experimental-webstorage

Added in: v22.4.0

実験的な Web Storage サポートを有効にします。

--expose-gc

Added in: v22.3.0, v20.18.0

[Stable: 1 - Experimental]

Stable: 1 Stability: 1 - 試験的。このフラグは V8 から継承されたものであり、アップストリームで変更される可能性があります。

このフラグは、V8 の gc 拡張機能を公開します。

js
if (globalThis.gc) {
  globalThis.gc();
}

--force-context-aware

Added in: v12.12.0

context-aware ではないネイティブアドオンのロードを無効にします。

--force-fips

Added in: v6.0.0

起動時に FIPS 準拠の暗号化を強制します。(スクリプトコードから無効にすることはできません。)(--enable-fips と同じ要件です。)

--force-node-api-uncaught-exceptions-policy

Added in: v18.3.0, v16.17.0

Node-API 非同期コールバックで uncaughtException イベントを強制します。

既存のアドオンがプロセスをクラッシュさせるのを防ぐため、このフラグはデフォルトでは有効になっていません。将来的には、正しい動作を強制するために、このフラグがデフォルトで有効になります。

--frozen-intrinsics

追加: v11.12.0

[安定版: 1 - 試験的]

安定版: 1 安定度: 1 - 試験的

ArrayObject のような実験的な凍結された組み込み関数を有効にします。

ルートコンテキストのみがサポートされています。globalThis.Array が実際にデフォルトの組み込み関数への参照であるという保証はありません。このフラグの下ではコードが壊れる可能性があります。

ポリフィルを追加できるようにするために、--require--import は両方とも組み込み関数の凍結前に実行されます。

--heap-prof

[履歴]

バージョン変更点
v22.4.0, v20.16.0--heap-prof フラグが安定版になりました。
v12.4.0追加: v12.4.0

[安定版: 2 - 安定]

安定版: 2 安定度: 2 - 安定

起動時に V8 ヒーププロファイラを開始し、終了前にヒーププロファイルをディスクに書き込みます。

--heap-prof-dir が指定されていない場合、生成されたプロファイルは現在の作業ディレクトリに配置されます。

--heap-prof-name が指定されていない場合、生成されたプロファイルの名前は Heap.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.heapprofile になります。

bash
$ node --heap-prof index.js
$ ls *.heapprofile
Heap.20190409.202950.15293.0.001.heapprofile

--heap-prof-dir

[履歴]

バージョン変更点
v22.4.0, v20.16.0--heap-prof フラグが安定版になりました。
v12.4.0追加: v12.4.0

[安定版: 2 - 安定]

安定版: 2 安定度: 2 - 安定

--heap-prof によって生成されたヒーププロファイルが配置されるディレクトリを指定します。

デフォルト値は、--diagnostic-dir コマンドラインオプションによって制御されます。

--heap-prof-interval

[履歴]

バージョン変更点
v22.4.0, v20.16.0--heap-prof フラグが安定版になりました。
v12.4.0追加: v12.4.0

[安定版: 2 - 安定]

安定版: 2 安定度: 2 - 安定

--heap-prof によって生成されるヒーププロファイルの平均サンプリング間隔をバイト単位で指定します。デフォルトは 512 * 1024 バイトです。

--heap-prof-name

[履歴]

バージョン変更
v22.4.0, v20.16.0--heap-prof フラグが安定版になりました。
v12.4.0追加: v12.4.0

[安定版: 2 - 安定]

安定版: 2 安定版: 2 - 安定

--heap-prof によって生成されるヒーププロファイルファイル名を指定します。

--heapsnapshot-near-heap-limit=max_count

追加: v15.1.0, v14.18.0

[安定版: 1 - 試験的]

安定版: 1 安定版: 1 - 試験的

V8ヒープの使用量がヒープ制限に近づくと、V8ヒープスナップショットをディスクに書き込みます。count は負でない整数でなければなりません(その場合、Node.jsは最大 max_count 個のスナップショットをディスクに書き込みます)。

スナップショットを生成するときに、ガベージコレクションがトリガーされ、ヒープの使用量が低下する可能性があります。したがって、Node.jsインスタンスが最終的にメモリ不足になる前に、複数のスナップショットがディスクに書き込まれる場合があります。これらのヒープスナップショットを比較して、連続するスナップショットの取得中にどのオブジェクトが割り当てられているかを判断できます。Node.jsが正確に max_count 個のスナップショットをディスクに書き込むことは保証されていませんが、max_count0 より大きい場合、Node.jsインスタンスがメモリ不足になる前に、少なくとも1つ、最大で max_count 個のスナップショットを生成するように最善を尽くします。

V8スナップショットの生成には、時間とメモリが必要です(V8ヒープによって管理されるメモリと、V8ヒープ外のネイティブメモリの両方)。ヒープが大きいほど、より多くのリソースが必要です。Node.jsは、追加のV8ヒープメモリのオーバーヘッドに対応するようにV8ヒープを調整し、プロセスが利用できるすべてのメモリを使い果たさないように最善を尽くします。プロセスがシステムが適切と見なすよりも多くのメモリを使用すると、システムの構成に応じて、システムによってプロセスが突然終了される場合があります。

bash
$ node --max-old-space-size=100 --heapsnapshot-near-heap-limit=3 index.js
Wrote snapshot to Heap.20200430.100036.49580.0.001.heapsnapshot
Wrote snapshot to Heap.20200430.100037.49580.0.002.heapsnapshot
Wrote snapshot to Heap.20200430.100038.49580.0.003.heapsnapshot

<--- Last few GCs --->

[49580:0x110000000]     4826 ms: Mark-sweep 130.6 (147.8) -> 130.5 (147.8) MB, 27.4 / 0.0 ms  (average mu = 0.126, current mu = 0.034) allocation failure scavenge might not succeed
[49580:0x110000000]     4845 ms: Mark-sweep 130.6 (147.8) -> 130.6 (147.8) MB, 18.8 / 0.0 ms  (average mu = 0.088, current mu = 0.031) allocation failure scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
....

--heapsnapshot-signal=signal

追加: v12.0.0

指定されたシグナルを受信したときに Node.js プロセスがヒープダンプを書き出すシグナルハンドラを有効にします。 signal は有効なシグナル名である必要があります。 デフォルトでは無効になっています。

bash
$ node --heapsnapshot-signal=SIGUSR2 index.js &
$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
node         1  5.5  6.1 787252 247004 ?       Ssl  16:43   0:02 node --heapsnapshot-signal=SIGUSR2 index.js
$ kill -USR2 1
$ ls
Heap.20190718.133405.15554.0.001.heapsnapshot

-h, --help

追加: v0.1.3

node コマンドラインオプションを出力します。 このオプションの出力は、このドキュメントよりも詳細ではありません。

--icu-data-dir=file

追加: v0.11.15

ICU データロードパスを指定します。(NODE_ICU_DATA を上書きします。)

--import=module

追加: v19.0.0, v18.18.0

[安定版: 1 - 試験的]

安定版: 1 安定性: 1 - 試験的

起動時に指定されたモジュールをプリロードします。 フラグが複数回指定された場合、各モジュールは、NODE_OPTIONS で指定されたものから順に、表示される順に順番に実行されます。

ECMAScript モジュール の解決規則に従います。 CommonJS モジュール をロードするには、--require を使用します。 --require でプリロードされたモジュールは、--import でプリロードされたモジュールよりも前に実行されます。

モジュールは、メインスレッドだけでなく、ワーカー スレッド、フォークされたプロセス、またはクラスタ化されたプロセスにもプリロードされます。

--input-type=type

追加: v12.0.0

これは、Node.js が --eval または STDIN 入力を CommonJS または ES モジュールとして解釈するように構成します。 有効な値は "commonjs" または "module" です。 デフォルトは "commonjs" です。

REPL はこのオプションをサポートしていません。 --print--input-type=module を使用すると、--print が ES モジュールの構文をサポートしていないため、エラーがスローされます。

--insecure-http-parser

追加: v13.4.0, v12.15.0, v10.19.0

HTTP パーサーで寛容フラグを有効にします。これにより、非準拠の HTTP 実装との相互運用が可能になる場合があります。

有効にすると、パーサーは以下を受け入れます。

  • 無効な HTTP ヘッダー値。
  • 無効な HTTP バージョン。
  • Transfer-EncodingContent-Length ヘッダーの両方を含むメッセージを許可します。
  • Connection: close が存在する場合、メッセージの後の余分なデータを許可します。
  • chunked が提供された後、追加の転送エンコーディングを許可します。
  • \r\n の代わりに \n をトークン区切り文字として使用することを許可します。
  • チャンクの後に \r\n を提供しないことを許可します。
  • チャンクサイズの後と \r\n の前にスペースが存在することを許可します。

上記のすべては、アプリケーションをリクエストスマグリングまたはポイズニング攻撃にさらします。このオプションの使用は避けてください。

警告: パブリック IP:ポートの組み合わせにインスペクターをバインドすることは安全ではありません

開いているポートを持つパブリック IP ( 0.0.0.0 を含む) にインスペクターをバインドすることは安全ではありません。外部ホストがインスペクターに接続し、リモートコード実行攻撃を実行できるようになるためです。

ホストを指定する場合は、次のいずれかを確認してください。

  • ホストがパブリックネットワークからアクセスできない。
  • ファイアウォールがポート上の不要な接続を許可しない。

より具体的には、ポート(デフォルトでは 9229)がファイアウォールで保護されていない場合、--inspect=0.0.0.0 は安全ではありません。

詳細については、デバッグのセキュリティに関する考慮事項セクションを参照してください。

--inspect-brk[=[host:]port]

追加: v7.6.0

host:port でインスペクターをアクティブにし、ユーザースクリプトの開始時に中断します。デフォルトの host:port127.0.0.1:9229 です。ポート 0 が指定されている場合は、ランダムに使用可能なポートが使用されます。

Node.js デバッガーの詳細については、Node.js 用の V8 インスペクター統合を参照してください。

--inspect-port=[host:]port

追加: v7.6.0

インスペクターがアクティブ化されたときに使用する host:port を設定します。SIGUSR1 シグナルを送信してインスペクターをアクティブ化する場合に役立ちます。

デフォルトのホストは 127.0.0.1 です。ポート 0 が指定されている場合は、ランダムに使用可能なポートが使用されます。

host パラメータの使用に関する以下のセキュリティ警告を参照してください。

--inspect-publish-uid=stderr,http

インスペクターの WebSocket URL の公開方法を指定します。

デフォルトでは、インスペクターの WebSocket URL は stderr で利用可能であり、http://host:port/json/list/json/list エンドポイントで利用可能です。

--inspect-wait[=[host:]port]

Added in: v22.2.0, v20.15.0

host:port でインスペクターをアクティブにし、デバッガーが接続されるのを待ちます。デフォルトの host:port127.0.0.1:9229 です。ポート 0 が指定された場合、ランダムに利用可能なポートが使用されます。

Node.js デバッガーの詳細については、Node.js の V8 インスペクター統合 を参照してください。

--inspect[=[host:]port]

Added in: v6.3.0

host:port でインスペクターをアクティブにします。デフォルトは 127.0.0.1:9229 です。ポート 0 が指定された場合、ランダムに利用可能なポートが使用されます。

V8 インスペクター統合により、Chrome DevTools や IDE などのツールを使用して、Node.js インスタンスをデバッグおよびプロファイルできます。これらのツールは、TCP ポート経由で Node.js インスタンスに接続し、Chrome DevTools Protocol を使用して通信します。Node.js デバッガーの詳細については、Node.js の V8 インスペクター統合 を参照してください。

-i, --interactive

Added in: v0.7.7

stdin が端末ではないと思われる場合でも、REPL を開きます。

--jitless

Added in: v12.0.0

[Stable: 1 - Experimental]

Stable: 1 Stability: 1 - 実験的。このフラグは V8 から継承されており、上流で変更される可能性があります。

実行可能メモリのランタイム割り当てを無効にします。これは、セキュリティ上の理由から一部のプラットフォームで必要になる場合があります。また、他のプラットフォームでの攻撃対象領域を減らすこともできますが、パフォーマンスへの影響は深刻になる可能性があります。

--localstorage-file=file

Added in: v22.4.0

localStorage データの保存に使用されるファイル。ファイルが存在しない場合は、localStorage に最初にアクセスしたときに作成されます。同じファイルを複数の Node.js プロセスで同時に共有できます。このフラグは、Node.js が --experimental-webstorage フラグで起動されていない限り、何もしません。

--max-http-header-size=size

[履歴]

バージョン変更
v13.13.0HTTPヘッダーの最大デフォルトサイズを8 KiBから16 KiBに変更。
v11.6.0, v10.15.0追加: v11.6.0, v10.15.0

HTTPヘッダーの最大サイズをバイト単位で指定します。デフォルトは16 KiBです。

--napi-modules

追加: v7.10.0

このオプションは何もしません。互換性のために維持されています。

--network-family-autoselection-attempt-timeout

追加: v22.1.0, v20.13.0

ネットワークファミリーの自動選択試行タイムアウトのデフォルト値を設定します。詳細については、net.getDefaultAutoSelectFamilyAttemptTimeout() を参照してください。

--no-addons

追加: v16.10.0, v14.19.0

node-addons エクスポート条件を無効にし、ネイティブアドオンのロードも無効にします。--no-addons が指定されている場合、process.dlopen の呼び出しまたはネイティブ C++ アドオンの require は失敗し、例外がスローされます。

--no-deprecation

追加: v0.8.0

非推奨の警告を抑制します。

--no-experimental-detect-module

[履歴]

バージョン変更
v22.7.0構文検出がデフォルトで有効になりました。
v21.1.0, v20.10.0追加: v21.1.0, v20.10.0

構文検出を使用してモジュールタイプを決定することを無効にします。

--no-experimental-global-navigator

追加: v21.2.0

[安定版: 1 - 試験的]

安定版: 1 安定度: 1 - 試験的

グローバルスコープでの Navigator API の公開を無効にします。

--no-experimental-repl-await

追加: v16.6.0

このフラグを使用して、REPL でのトップレベル await を無効にします。

--no-experimental-require-module

[履歴]

バージョン変更
v23.0.0これはデフォルトで false になりました。
v22.0.0, v20.17.0追加: v22.0.0, v20.17.0

[安定版: 1 - 試験的]

安定版: 1 安定度: 1.1 - 活発な開発

require() での同期 ES モジュールグラフのロードのサポートを無効にします。

require() を使用した ECMAScript モジュールのロード を参照してください。

--no-experimental-sqlite

[履歴]

バージョン変更点
v23.4.0SQLiteのフラグは解除されましたが、まだ実験的です。
v22.5.0追加: v22.5.0

実験的な node:sqlite モジュールを無効にします。

--no-experimental-websocket

追加: v22.0.0

グローバルスコープでの WebSocket の公開を無効にします。

--no-extra-info-on-fatal-exception

追加: v17.0.0

終了を引き起こす致命的な例外に関する追加情報を非表示にします。

--no-force-async-hooks-checks

追加: v9.0.0

async_hooks のランタイムチェックを無効にします。 これらは、async_hooks が有効になっている場合は、動的に有効になります。

--no-global-search-paths

追加: v16.10.0

$HOME/.node_modules$NODE_PATH のようなグローバルパスからモジュールを検索しません。

--no-network-family-autoselection

[履歴]

バージョン変更点
v20.0.0フラグの名前が --no-enable-network-family-autoselection から --no-network-family-autoselection に変更されました。 古い名前はエイリアスとして引き続き機能します。
v19.4.0追加: v19.4.0

接続オプションで明示的に有効にしない限り、ファミリーの自動選択アルゴリズムを無効にします。

--no-warnings

追加: v6.0.0

すべてのプロセスの警告(非推奨を含む)を抑制します。

--node-memory-debug

追加: v15.0.0, v14.18.0

Node.js内部のメモリリークに対する追加のデバッグチェックを有効にします。 これは通常、Node.js自体をデバッグする開発者にのみ役立ちます。

--openssl-config=file

追加: v6.9.0

起動時にOpenSSL構成ファイルをロードします。 特に、Node.jsがFIPS対応のOpenSSLに対して構築されている場合、これを使用してFIPS準拠の暗号化を有効にできます。

--openssl-legacy-provider

追加: v17.0.0, v16.17.0

OpenSSL 3.0レガシープロバイダーを有効にします。 詳細については、OSSL_PROVIDER-legacyを参照してください。

--openssl-shared-config

追加: v18.5.0, v16.17.0, v14.21.0

OpenSSLのデフォルト構成セクションである openssl_conf がOpenSSL構成ファイルから読み込まれるようにします。 デフォルトの構成ファイルは openssl.cnf という名前ですが、これは環境変数 OPENSSL_CONF を使用するか、コマンドラインオプション --openssl-config を使用して変更できます。 デフォルトのOpenSSL構成ファイルの場所は、OpenSSLがNode.jsにどのようにリンクされているかによって異なります。 OpenSSL構成を共有すると、予期しない影響が生じる可能性があるため、Node.jsに固有の構成セクションである nodejs_conf を使用することをお勧めします。これは、このオプションが使用されていない場合のデフォルトです。

--pending-deprecation

追加: v8.0.0

保留中の非推奨警告を発行します。

保留中の非推奨は一般的にランタイムの非推奨と同一ですが、デフォルトで オフ になっており、--pending-deprecation コマンドラインフラグまたは NODE_PENDING_DEPRECATION=1 環境変数が設定されない限り発行されない点が異なります。保留中の非推奨は、開発者が非推奨の API 使用を検出するために活用できる、一種の選択的な "早期警告" メカニズムを提供するために使用されます。

--permission

[履歴]

バージョン変更点
v23.5.0許可モデルが安定しました。
v20.0.0追加: v20.0.0

[安定: 2 - 安定]

安定: 2 安定性: 2 - 安定。

現在のプロセスに対して許可モデルを有効にします。有効にすると、次の許可が制限されます。

--preserve-symlinks

追加: v6.3.0

モジュールを解決およびキャッシュするときに、シンボリックリンクを保持するようにモジュールローダーに指示します。

デフォルトでは、Node.js がシンボリックリンクされている別のディスク上の場所からモジュールをロードする場合、Node.js はリンクを解決し、モジュールの実際のディスク上の "実パス" を識別子として、また他の依存モジュールを見つけるためのルートパスとして使用します。ほとんどの場合、このデフォルトの動作で問題ありません。ただし、以下の例に示すように、シンボリックリンクされたピア依存関係を使用する場合、moduleAmoduleB をピア依存関係として require しようとすると、デフォルトの動作により例外がスローされます。

text
{appDir}
 ├── app
 │   ├── index.js
 │   └── node_modules
 │       ├── moduleA -> {appDir}/moduleA
 │       └── moduleB
 │           ├── index.js
 │           └── package.json
 └── moduleA
     ├── index.js
     └── package.json

--preserve-symlinks コマンドラインフラグは、Node.js に実パスではなくモジュールのシンボリックリンクパスを使用するように指示し、シンボリックリンクされたピア依存関係を見つけることを可能にします。

ただし、--preserve-symlinks を使用すると、他の副作用が発生する可能性があることに注意してください。具体的には、シンボリックリンクされた ネイティブ モジュールは、依存関係ツリー内の複数の場所からリンクされている場合、ロードに失敗する可能性があります(Node.js はこれらを 2 つの別個のモジュールとして認識し、モジュールを複数回ロードしようとするため、例外がスローされます)。

--preserve-symlinks フラグはメインモジュールには適用されません。これにより、node --preserve-symlinks node_module/.bin/\<foo\> が機能します。メインモジュールに同じ動作を適用するには、--preserve-symlinks-main も使用します。

Added in: v10.2.0

モジュールローダーに、メインモジュール (require.main) を解決してキャッシュするときにシンボリックリンクを保持するように指示します。

このフラグが存在するのは、メインモジュールが、--preserve-symlinks が他のすべてのインポートに与えるのと同じ動作をオプトインできるようにするためです。ただし、古いバージョンのNode.jsとの下位互換性のために、これらは別々のフラグです。

--preserve-symlinks-main--preserve-symlinks を意味しません。相対パスを解決する前にシンボリックリンクをたどることが望ましくない場合は、--preserve-symlinks-main に加えて --preserve-symlinks を使用してください。

詳細については、--preserve-symlinks を参照してください。

[履歴]

バージョン変更点
v5.11.0組み込みライブラリが定義済みの変数として利用可能になりました。
v0.6.4Added in: v0.6.4

-e と同じですが、結果を出力します。

--prof

Added in: v2.0.0

V8プロファイラー出力を生成します。

--prof-process

Added in: v5.2.0

V8オプション--profを使用して生成されたV8プロファイラー出力を処理します。

--redirect-warnings=file

Added in: v8.0.0

プロセス警告をstderrに出力する代わりに、指定されたファイルに書き込みます。ファイルが存在しない場合は作成され、存在する場合は追記されます。警告をファイルに書き込もうとしたときにエラーが発生した場合、警告は代わりにstderrに書き込まれます。

file 名は絶対パスでもかまいません。そうでない場合、書き込まれるデフォルトのディレクトリは、--diagnostic-dir コマンドラインオプションによって制御されます。

--report-compact

Added in: v13.12.0, v12.17.0

レポートをコンパクトな形式、つまり、人間が消費するために設計されたデフォルトの複数行形式よりも、ログ処理システムでより簡単に消費できる単一行JSONで書き込みます。

--report-dir=directory, report-directory=directory

[履歴]

バージョン変更点
v13.12.0, v12.17.0このオプションは実験的ではなくなりました。
v12.0.0--diagnostic-report-directory から --report-directory に変更されました。
v11.8.0Added in: v11.8.0

レポートが生成される場所。

--report-exclude-env

Added in: v23.3.0

--report-exclude-env が渡されると、生成される診断レポートに environmentVariables データが含まれません。

--report-exclude-network

Added in: v22.0.0, v20.13.0

診断レポートから header.networkInterfaces を除外します。デフォルトでは設定されておらず、ネットワークインターフェースは含まれます。

--report-filename=filename

[履歴]

バージョン変更点
v13.12.0, v12.17.0このオプションは実験的ではなくなりました。
v12.0.0--diagnostic-report-filename から --report-filename に変更されました。
v11.8.0Added in: v11.8.0

レポートが書き込まれるファイルの名前。

ファイル名が 'stdout' または 'stderr' に設定されている場合、レポートはそれぞれプロセスの stdout または stderr に書き込まれます。

--report-on-fatalerror

[履歴]

バージョン変更点
v14.0.0, v13.14.0, v12.17.0このオプションは実験的ではなくなりました。
v12.0.0--diagnostic-report-on-fatalerror から --report-on-fatalerror に変更されました。
v11.8.0Added in: v11.8.0

アプリケーションの終了につながる致命的なエラー (メモリ不足など、Node.js ランタイム内の内部エラー) でレポートがトリガーされるようにします。ヒープ、スタック、イベントループの状態、リソース消費など、さまざまな診断データ要素を検査して、致命的なエラーについて推論するのに役立ちます。

--report-on-signal

[履歴]

バージョン変更点
v13.12.0, v12.17.0このオプションは実験的ではなくなりました。
v12.0.0--diagnostic-report-on-signal から --report-on-signal に変更されました。
v11.8.0Added in: v11.8.0

実行中の Node.js プロセスへの指定された (または事前定義された) シグナルを受信したときにレポートが生成されるようにします。レポートをトリガーするシグナルは、--report-signal を使用して指定します。

--report-signal=signal

[履歴]

バージョン変更点
v13.12.0, v12.17.0このオプションは実験的ではなくなりました。
v12.0.0--diagnostic-report-signal から --report-signal に変更されました。
v11.8.0Added in: v11.8.0

レポート生成のシグナルを設定またはリセットします (Windows ではサポートされていません)。デフォルトのシグナルは SIGUSR2 です。

--report-uncaught-exception

[履歴]

バージョン変更点
v18.8.0, v16.18.0未処理の例外が処理された場合、レポートは生成されません。
v13.12.0, v12.17.0このオプションは実験的ではなくなりました。
v12.0.0--diagnostic-report-uncaught-exception から --report-uncaught-exception に変更されました。
v11.8.0Added in: v11.8.0

未処理の例外が原因でプロセスが終了したときにレポートが生成されるようにします。ネイティブスタックや他のランタイム環境データと組み合わせて JavaScript スタックを検査する場合に役立ちます。

-r, --require module

Added in: v1.6.0

起動時に指定されたモジュールをプリロードします。

require() のモジュール解決ルールに従います。module は、ファイルへのパス、または node モジュール名である場合があります。

CommonJS モジュールのみがサポートされています。 ECMAScript モジュール をプリロードするには、--import を使用してください。--require でプリロードされたモジュールは、--import でプリロードされたモジュールよりも先に実行されます。

モジュールは、メインスレッドだけでなく、すべてのワーカーースレッド、フォークされたプロセス、またはクラスタ化されたプロセスにプリロードされます。

--run

[履歴]

バージョン変更点
v22.3.0NODE_RUN_SCRIPT_NAME 環境変数が追加されました。
v22.3.0NODE_RUN_PACKAGE_JSON_PATH 環境変数が追加されました。
v22.3.0ルートディレクトリまで遡って package.json ファイルを見つけ、そこからコマンドを実行し、それに応じて PATH 環境変数を更新します。
v22.0.0Added in: v22.0.0

[Stable: 2 - Stable]

Stable: 2 安定性: 2 - 安定

これは、package.json の "scripts" オブジェクトから指定されたコマンドを実行します。 "command" が見つからない場合は、利用可能なスクリプトが一覧表示されます。

--run はルートディレクトリまで遡って package.json ファイルを見つけ、そこからコマンドを実行します。

--run は、現在のディレクトリの各親の ./node_modules/.binPATH に追加して、複数の node_modules ディレクトリが存在する異なるフォルダからバイナリを実行できるようにします ( ancestor-folder/node_modules/.bin がディレクトリの場合)。

--run は、関連する package.json を含むディレクトリでコマンドを実行します。

たとえば、次のコマンドは、現在のフォルダにある package.jsontest スクリプトを実行します。

bash
$ node --run test

コマンドに引数を渡すこともできます。 -- の後の引数はすべて、スクリプトに追加されます。

bash
$ node --run test -- --verbose

意図的な制限

node --runnpm run や他のパッケージマネージャーの run コマンドの動作と一致することを意図していません。Node.js の実装は、最も一般的なユースケースにおいて最高のパフォーマンスに焦点を当てるため、意図的に制限されています。他の run 実装の一部の機能のうち、意図的に除外されているものは次のとおりです。

  • 指定されたスクリプトに加えて、pre または post スクリプトの実行。
  • パッケージマネージャー固有の環境変数の定義。

環境変数

--run でスクリプトを実行する際には、以下の環境変数が設定されます。

  • NODE_RUN_SCRIPT_NAME: 実行されているスクリプトの名前。たとえば、--run を使用して test を実行する場合、この変数の値は test になります。
  • NODE_RUN_PACKAGE_JSON_PATH: 処理されている package.json へのパス。

--secure-heap-min=n

追加: v15.6.0

--secure-heap を使用する場合、--secure-heap-min フラグはセキュアヒープからの最小割り当てを指定します。最小値は 2 です。最大値は --secure-heap または 2147483647 のいずれか小さい方です。指定された値は 2 の累乗である必要があります。

--secure-heap=n

追加: v15.6.0

n バイトの OpenSSL セキュアヒープを初期化します。初期化されると、セキュアヒープは、キーの生成やその他の操作中に OpenSSL 内の選択された種類の割り当てに使用されます。これは、たとえば、ポインタのオーバーランまたはアンダーランによって機密情報が漏洩するのを防ぐのに役立ちます。

セキュアヒープは固定サイズであり、実行時にサイズ変更できないため、使用する場合は、すべてのアプリケーションの使用をカバーするのに十分な大きさのヒープを選択することが重要です。

指定されたヒープサイズは 2 の累乗である必要があります。2 未満の値はセキュアヒープを無効にします。

セキュアヒープはデフォルトで無効になっています。

セキュアヒープは Windows では利用できません。

詳細については、CRYPTO_secure_malloc_init を参照してください。

--snapshot-blob=path

追加: v18.8.0

[安定: 1 - 実験的]

安定: 1 安定性: 1 - 実験的

--build-snapshot と共に使用すると、--snapshot-blob は、生成されたスナップショットブロブが書き込まれるパスを指定します。指定されていない場合、生成されたブロブは現在の作業ディレクトリの snapshot.blob に書き込まれます。

--build-snapshot なしで使用すると、--snapshot-blob は、アプリケーションの状態を復元するために使用されるブロブへのパスを指定します。

スナップショットをロードすると、Node.js は以下を確認します。

一致しない場合、Node.js はスナップショットのロードを拒否し、ステータスコード 1 で終了します。

--test

[履歴]

バージョン変更
v20.0.0テストランナーが安定版になりました。
v19.2.0, v18.13.0テストランナーがウォッチモードでの実行をサポートするようになりました。
v18.1.0, v16.17.0v18.1.0、v16.17.0 で追加

Node.js コマンドラインテストランナーを起動します。このフラグは、--watch-path--check--eval--interactive、またはインスペクターと組み合わせることはできません。詳細については、コマンドラインからのテストの実行に関するドキュメントを参照してください。

--test-concurrency

追加: v21.0.0, v20.10.0, v18.19.0

テストランナー CLI が同時実行するテストファイルの最大数。--experimental-test-isolation'none' に設定されている場合、このフラグは無視され、並行処理は 1 になります。それ以外の場合、並行処理はデフォルトで os.availableParallelism() - 1 になります。

--test-coverage-branches=threshold

追加: v22.8.0

[安定版: 1 - 試験的]

安定版: 1 安定性: 1 - 試験的

カバーされるブランチの最小パーセントを要求します。コードカバレッジが指定されたしきい値に達しない場合、プロセスはコード 1 で終了します。

--test-coverage-exclude

追加: v22.5.0

[安定版: 1 - 試験的]

安定版: 1 安定性: 1 - 試験的

絶対ファイルパスと相対ファイルパスの両方に一致する可能性のあるグロブパターンを使用して、コードカバレッジから特定のファイルを除外します。

このオプションを複数回指定して、複数のグロブパターンを除外できます。

--test-coverage-exclude--test-coverage-include の両方が指定されている場合、ファイルはカバレッジレポートに含まれるために両方の基準を満たす必要があります。

デフォルトでは、一致するすべてのテストファイルがカバレッジレポートから除外されます。このオプションを指定すると、デフォルトの動作がオーバーライドされます。

--test-coverage-functions=threshold

追加: v22.8.0

[安定版: 1 - 試験的]

安定版: 1 安定性: 1 - 試験的

カバーされる関数の最小パーセントを要求します。コードカバレッジが指定されたしきい値に達しない場合、プロセスはコード 1 で終了します。

--test-coverage-include

Added in: v22.5.0

[Stable: 1 - Experimental]

Stable: 1 Stability: 1 - 試験的

グロブパターンを使用してコードカバレッジに特定のファイルを含めます。グロブパターンは絶対ファイルパスと相対ファイルパスの両方に一致させることができます。

このオプションは、複数のグロブパターンを含めるために複数回指定できます。

--test-coverage-exclude--test-coverage-include の両方が指定されている場合、ファイルはカバレッジレポートに含めるためには 両方 の条件を満たす必要があります。

--test-coverage-lines=threshold

Added in: v22.8.0

[Stable: 1 - Experimental]

Stable: 1 Stability: 1 - 試験的

カバーされた行の最小パーセントを要求します。コードカバレッジが指定された閾値に達しない場合、プロセスはコード 1 で終了します。

--test-force-exit

Added in: v22.0.0, v20.14.0

既知のテストがすべて実行を終了した後でも、イベントループがアクティブなままである場合でも、プロセスを終了するようにテストランナーを構成します。

--test-name-pattern

[History]

VersionChanges
v20.0.0テストランナーが安定版になりました。
v18.11.0Added in: v18.11.0

指定されたパターンに名前が一致するテストのみを実行するようにテストランナーを構成する正規表現。詳細については、名前によるテストのフィルタリングのドキュメントを参照してください。

--test-name-pattern--test-skip-pattern の両方が指定されている場合、テストを実行するには 両方 の要件を満たす必要があります。

--test-only

[History]

VersionChanges
v20.0.0テストランナーが安定版になりました。
v18.0.0, v16.17.0Added in: v18.0.0, v16.17.0

only オプションが設定されているトップレベルテストのみを実行するようにテストランナーを構成します。テスト分離が無効になっている場合、このフラグは必要ありません。

--test-reporter

[History]

VersionChanges
v20.0.0テストランナーが安定版になりました。
v19.6.0, v18.15.0Added in: v19.6.0, v18.15.0

テストの実行時に使用するテストレポーター。テストレポーターのドキュメントで詳細を参照してください。

--test-reporter-destination

[履歴]

バージョン変更点
v20.0.0テストランナーが安定版になりました。
v19.6.0, v18.15.0追加: v19.6.0, v18.15.0

対応するテストレポーターの出力先を指定します。詳細については、テストレポーターのドキュメントを参照してください。

--test-shard

追加: v20.5.0, v18.19.0

実行するテストスイートのシャードを \<index\>/\<total\> の形式で指定します。ここで、

index は正の整数で、分割された部分のインデックスです。total は正の整数で、分割された部分の合計です。このコマンドは、すべてのテストファイルを total 個の等しい部分に分割し、index の部分にあるものだけを実行します。

たとえば、テストスイートを 3 つの部分に分割するには、次のようにします。

bash
node --test --test-shard=1/3
node --test --test-shard=2/3
node --test --test-shard=3/3

--test-skip-pattern

追加: v22.1.0

指定されたパターンに名前が一致するテストをスキップするようにテストランナーを設定する正規表現。詳細については、名前によるテストのフィルタリングのドキュメントを参照してください。

--test-name-pattern--test-skip-pattern の両方が指定されている場合、テストを実行するには両方の要件を満たす必要があります。

--test-timeout

追加: v21.2.0, v20.11.0

テストの実行が失敗するまでのミリ秒数。指定しない場合、サブテストはこの値を親から継承します。デフォルト値は Infinity です。

--test-update-snapshots

[履歴]

バージョン変更点
v23.4.0スナップショットテストは実験的ではなくなりました。
v22.3.0追加: v22.3.0

スナップショットテストのためにテストランナーで使用されるスナップショットファイルを再生成します。

--throw-deprecation

追加: v0.11.14

非推奨でエラーをスローします。

--title=title

追加: v10.7.0

起動時に process.title を設定します。

--tls-cipher-list=list

追加: v4.0.0

代替のデフォルト TLS 暗号リストを指定します。Node.js が crypto サポート (デフォルト) でビルドされている必要があります。

--tls-keylog=file

Added in: v13.2.0, v12.16.0

TLS鍵マテリアルをファイルに記録します。キーマテリアルはNSS SSLKEYLOGFILE 形式で、(Wiresharkなどの) TLSトラフィックを復号化するためにソフトウェアで使用できます。

--tls-max-v1.2

Added in: v12.0.0, v10.20.0

tls.DEFAULT_MAX_VERSION を 'TLSv1.2' に設定します。TLSv1.3 のサポートを無効にするために使用します。

--tls-max-v1.3

Added in: v12.0.0

デフォルトの tls.DEFAULT_MAX_VERSION を 'TLSv1.3' に設定します。TLSv1.3 のサポートを有効にするために使用します。

--tls-min-v1.0

Added in: v12.0.0, v10.20.0

デフォルトの tls.DEFAULT_MIN_VERSION を 'TLSv1' に設定します。古い TLS クライアントまたはサーバーとの互換性のために使用します。

--tls-min-v1.1

Added in: v12.0.0, v10.20.0

デフォルトの tls.DEFAULT_MIN_VERSION を 'TLSv1.1' に設定します。古い TLS クライアントまたはサーバーとの互換性のために使用します。

--tls-min-v1.2

Added in: v12.2.0, v10.20.0

デフォルトの tls.DEFAULT_MIN_VERSION を 'TLSv1.2' に設定します。これは 12.x 以降のデフォルトですが、このオプションは古い Node.js バージョンとの互換性のためにサポートされています。

--tls-min-v1.3

Added in: v12.0.0

デフォルトの tls.DEFAULT_MIN_VERSION を 'TLSv1.3' に設定します。TLSv1.2 のサポートを無効にするために使用します。TLSv1.2 は TLSv1.3 ほど安全ではありません。

--trace-deprecation

Added in: v0.8.0

非推奨のスタックトレースを表示します。

--trace-env

Added in: v23.4.0

現在の Node.js インスタンスで実行された環境変数へのアクセスに関する情報を stderr に出力します。

  • Node.js が内部的に行う環境変数の読み取り。
  • process.env.KEY = "SOME VALUE" 形式の書き込み。
  • process.env.KEY 形式の読み取り。
  • Object.defineProperty(process.env, 'KEY', {...}) 形式の定義。
  • Object.hasOwn(process.env, 'KEY')process.env.hasOwnProperty('KEY')、または 'KEY' in process.env 形式のクエリ。
  • delete process.env.KEY 形式の削除。
  • ...process.env または Object.keys(process.env) 形式の列挙。

アクセスされている環境変数の名前のみが出力されます。値は出力されません。

アクセス時のスタックトレースを出力するには、--trace-env-js-stack または --trace-env-native-stack を使用してください。

--trace-env-js-stack

追加: v23.4.0

--trace-env の機能に加え、アクセス時の JavaScript スタックトレースを出力します。

--trace-env-native-stack

追加: v23.4.0

--trace-env の機能に加え、アクセス時のネイティブスタックトレースを出力します。

--trace-event-categories

追加: v7.7.0

--trace-events-enabled を使用してトレースイベントトレースが有効になっている場合にトレースされるべきカテゴリのカンマ区切りリスト。

--trace-event-file-pattern

追加: v9.8.0

トレースイベントデータのファイルパスを指定するテンプレート文字列。${rotation}${pid} をサポートします。

--trace-events-enabled

追加: v7.7.0

トレースイベントトレース情報の収集を有効にします。

--trace-exit

追加: v13.5.0, v12.16.0

環境が積極的に終了するたびに、つまり process.exit() を呼び出すたびに、スタックトレースを出力します。

--trace-require-module=mode

追加: v23.5.0

require() を使用した ECMAScript モジュールのロード の使用状況に関する情報を出力します。

modeall の場合、すべての使用状況が出力されます。 modeno-node-modules の場合、node_modules フォルダからの使用状況は除外されます。

--trace-sigint

追加: v13.9.0, v12.17.0

SIGINT でスタックトレースを出力します。

--trace-sync-io

追加: v2.1.0

イベントループの最初のターン後に同期 I/O が検出されるたびにスタックトレースを出力します。

--trace-tls

追加: v12.2.0

TLS パケットトレース情報を stderr に出力します。 これは TLS 接続の問題をデバッグするために使用できます。

--trace-uncaught

追加: v13.1.0

キャッチされない例外のスタックトレースを出力します。 通常、Error の作成に関連付けられたスタックトレースが出力されますが、これにより Node.js は値のスローに関連付けられたスタックトレースも出力します (これは Error インスタンスである必要はありません)。

このオプションを有効にすると、ガベージコレクションの動作に悪影響を与える可能性があります。

--trace-warnings

追加: v6.0.0

プロセスの警告(非推奨を含む)のスタックトレースを出力します。

--track-heap-objects

追加: v2.4.0

ヒープスナップショットのためにヒープオブジェクトの割り当てを追跡します。

--unhandled-rejections=mode

[履歴]

バージョン変更点
v15.0.0デフォルトモードを throw に変更しました。以前は、警告が出力されていました。
v12.0.0, v10.17.0追加: v12.0.0, v10.17.0

このフラグを使用すると、未処理のリジェクションが発生したときに何が起こるかを変更できます。次のいずれかのモードを選択できます。

  • throw: unhandledRejection を発行します。このフックが設定されていない場合は、未処理のリジェクションをキャッチされない例外として発生させます。これがデフォルトです。
  • strict: 未処理のリジェクションをキャッチされない例外として発生させます。例外が処理された場合、unhandledRejection が発行されます。
  • warn: unhandledRejection フックが設定されているかどうかに関係なく、常に警告をトリガーしますが、非推奨の警告は出力しません。
  • warn-with-error-code: unhandledRejection を発行します。このフックが設定されていない場合は、警告をトリガーし、プロセスの終了コードを 1 に設定します。
  • none: すべての警告を抑制します。

コマンドラインのエントリポイントの ES モジュール静的ロードフェーズ中にリジェクションが発生した場合、常にキャッチされない例外として発生します。

--use-bundled-ca, --use-openssl-ca

追加: v6.11.0

現在の Node.js バージョンで提供されているバンドルされた Mozilla CA ストアを使用するか、OpenSSL のデフォルト CA ストアを使用します。デフォルトのストアは、ビルド時に選択できます。

Node.js によって提供されるバンドルされた CA ストアは、リリース時に固定された Mozilla CA ストアのスナップショットです。サポートされているすべてのプラットフォームで同一です。

OpenSSL ストアを使用すると、ストアを外部から変更できます。ほとんどの Linux および BSD ディストリビューションでは、このストアはディストリビューションのメンテナおよびシステム管理者によって維持されています。OpenSSL CA ストアの場所は OpenSSL ライブラリの構成に依存しますが、環境変数を使用して実行時に変更できます。

SSL_CERT_DIR および SSL_CERT_FILE を参照してください。

--use-largepages=mode

Added in: v13.6.0, v12.17.0

Node.jsの静的コードを起動時に大きなメモリページに再マップします。ターゲットシステムでサポートされている場合、これにより、Node.jsの静的コードが4 KiBページではなく2 MiBページに移動されます。

modeに有効な値は次のとおりです。

  • off: マッピングは試行されません。これがデフォルトです。
  • on: OSでサポートされている場合、マッピングが試行されます。マッピングに失敗しても無視され、メッセージが標準エラーに出力されます。
  • silent: OSでサポートされている場合、マッピングが試行されます。マッピングに失敗しても無視され、報告されません。

--v8-options

Added in: v0.1.3

V8のコマンドラインオプションを出力します。

--v8-pool-size=num

Added in: v5.10.0

バックグラウンドジョブの割り当てに使用されるV8のスレッドプールサイズを設定します。

0に設定すると、Node.jsは並列処理の推定量に基づいて、スレッドプールの適切なサイズを選択します。

並列処理の量は、特定のマシンで同時に実行できる計算の数です。一般的に、CPUの数と同じですが、VMやコンテナなどの環境では異なる場合があります。

-v, --version

Added in: v0.1.3

Nodeのバージョンを出力します。

--watch

[履歴]

バージョン変更
v22.0.0, v20.13.0ウォッチモードが安定しました。
v19.2.0, v18.13.0テストランナーがウォッチモードでの実行をサポートするようになりました。
v18.11.0, v16.19.0Added in: v18.11.0, v16.19.0

[安定版: 2 - 安定]

安定版: 2 安定性: 2 - 安定

Node.jsをウォッチモードで起動します。ウォッチモードでは、監視対象ファイルの変更により、Node.jsプロセスが再起動されます。デフォルトでは、ウォッチモードはエントリポイントと、requireまたはimportされたモジュールを監視します。監視するパスを指定するには、--watch-pathを使用します。

このフラグは、--check--eval--interactive、またはREPLと組み合わせて使用​​することはできません。

bash
node --watch index.js

--watch-path

[History]

VersionChanges
v22.0.0, v20.13.0ウォッチモードが安定版になりました。
v18.11.0, v16.19.0追加: v18.11.0, v16.19.0

[Stable: 2 - Stable]

Stable: 2 安定性: 2 - 安定

Node.js をウォッチモードで起動し、監視するパスを指定します。 ウォッチモードでは、監視対象パスの変更により Node.js プロセスが再起動されます。 これは、--watch と組み合わせて使用した場合でも、require または import されたモジュールの監視をオフにします。

このフラグは、--check--eval--interactive--test、または REPL と組み合わせて使用することはできません。

bash
node --watch-path=./src --watch-path=./tests index.js

このオプションは、macOS および Windows でのみサポートされています。 オプションがサポートされていないプラットフォームで使用すると、ERR_FEATURE_UNAVAILABLE_ON_PLATFORM 例外がスローされます。

--watch-preserve-output

追加: v19.3.0, v18.13.0

ウォッチモードがプロセスを再起動するときに、コンソールのクリアを無効にします。

bash
node --watch --watch-preserve-output test.js

--zero-fill-buffers

追加: v6.0.0

新しく割り当てられたすべての Buffer および SlowBuffer インスタンスを自動的にゼロで埋めます。

環境変数

FORCE_COLOR=[1, 2, 3]

FORCE_COLOR 環境変数は、ANSI カラー出力の有効化に使用されます。 値は次のいずれかです。

  • 1true、または空の文字列 '' は 16 色のサポートを示します。
  • 2 は 256 色のサポートを示します。
  • 3 は 1600 万色のサポートを示します。

FORCE_COLOR が使用され、サポートされている値に設定されている場合、NO_COLOR および NODE_DISABLE_COLORS 環境変数は無視されます。

他の値を使用すると、カラー出力は無効になります。

NODE_COMPILE_CACHE=dir

追加: v22.1.0

[Stable: 1 - Experimental]

Stable: 1 安定性: 1.1 - 活発な開発

Node.js インスタンスのモジュールコンパイルキャッシュを有効にします。 詳細については、モジュールコンパイルキャッシュのドキュメントを参照してください。

NODE_DEBUG=module[,…]

追加: v0.1.32

デバッグ情報を出力するコアモジュールを ',' で区切ったリスト。

NODE_DEBUG_NATIVE=module[,…]

デバッグ情報を出力するコア C++ モジュールを ',' で区切ったリスト。

NODE_DISABLE_COLORS=1

追加: v0.3.0

設定すると、REPL で色が使用されなくなります。

NODE_DISABLE_COMPILE_CACHE=1

追加: v22.8.0

[安定: 1 - 実験的]

安定: 1 安定: 1.1 - 活発な開発

Node.js インスタンスのモジュールコンパイルキャッシュを無効にします。詳細については、モジュールコンパイルキャッシュのドキュメントを参照してください。

NODE_EXTRA_CA_CERTS=file

追加: v7.3.0

設定すると、既知の "ルート" CA (VeriSign など) が file 内の追加の証明書で拡張されます。ファイルは、PEM 形式の 1 つ以上の信頼できる証明書で構成されている必要があります。ファイルが見つからないか、形式が正しくない場合、process.emitWarning() でメッセージが (一度) 発行されますが、それ以外のエラーは無視されます。

TLS または HTTPS クライアントまたはサーバーに ca オプションプロパティが明示的に指定されている場合、既知の証明書も追加の証明書も使用されません。

この環境変数は、node が setuid root として実行されているか、Linux ファイルの機能が設定されている場合は無視されます。

NODE_EXTRA_CA_CERTS 環境変数は、Node.js プロセスの初回起動時にのみ読み取られます。実行時に process.env.NODE_EXTRA_CA_CERTS を使用して値を変更しても、現在のプロセスには影響しません。

NODE_ICU_DATA=file

追加: v0.11.15

ICU (Intl オブジェクト) データ用のデータパス。 small-icu サポートでコンパイルすると、リンクされたデータが拡張されます。

NODE_NO_WARNINGS=1

追加: v6.11.0

1 に設定すると、プロセスの警告は抑制されます。

NODE_OPTIONS=options...

追加: v8.0.0

空白で区切られたコマンドラインオプションのリスト。 options... はコマンドラインオプションの前に解釈されるため、コマンドラインオプションは options... の内容の後にオーバーライドまたは合成されます。環境で許可されていないオプション ( -p やスクリプトファイルなど) を使用すると、Node.js はエラーで終了します。

オプションの値にスペースが含まれている場合は、二重引用符を使用してエスケープできます。

bash
NODE_OPTIONS='--require "./my path/file.js"'

コマンドラインオプションとして渡されたシングルトンフラグは、NODE_OPTIONS に渡された同じフラグをオーバーライドします。

bash
# インスペクターはポート 5555 で利用可能になります {#node_options=options}
NODE_OPTIONS='--inspect=localhost:4444' node --inspect=localhost:5555

複数回渡すことができるフラグは、NODE_OPTIONS のインスタンスが最初に渡され、次にコマンドラインインスタンスが渡されたかのように扱われます。

bash
NODE_OPTIONS='--require "./a.js"' node --require "./b.js"
# は以下と同等です: {#the-inspector-will-be-available-on-port-5555}
node --require "./a.js" --require "./b.js"

許可されている Node.js オプションは、次のリストにあります。オプションが --XX--no-XX の両方のバリアントをサポートしている場合、両方がサポートされますが、以下のリストには 1 つのみが含まれています。

  • --allow-addons
  • --allow-child-process
  • --allow-fs-read
  • --allow-fs-write
  • --allow-wasi
  • --allow-worker
  • --conditions, -C
  • --diagnostic-dir
  • --disable-proto
  • --disable-warning
  • --disable-wasm-trap-handler
  • --dns-result-order
  • --enable-fips
  • --enable-network-family-autoselection
  • --enable-source-maps
  • --entry-url
  • --experimental-abortcontroller
  • --experimental-async-context-frame
  • --experimental-detect-module
  • --experimental-eventsource
  • --experimental-import-meta-resolve
  • --experimental-json-modules
  • --experimental-loader
  • --experimental-modules
  • --experimental-permission
  • --experimental-print-required-tla
  • --experimental-require-module
  • --experimental-shadow-realm
  • --experimental-specifier-resolution
  • --experimental-strip-types
  • --experimental-top-level-await
  • --experimental-transform-types
  • --experimental-vm-modules
  • --experimental-wasi-unstable-preview1
  • --experimental-wasm-modules
  • --experimental-webstorage
  • --force-context-aware
  • --force-fips
  • --force-node-api-uncaught-exceptions-policy
  • --frozen-intrinsics
  • --heap-prof-dir
  • --heap-prof-interval
  • --heap-prof-name
  • --heap-prof
  • --heapsnapshot-near-heap-limit
  • --heapsnapshot-signal
  • --http-parser
  • --icu-data-dir
  • --import
  • --input-type
  • --insecure-http-parser
  • --inspect-brk
  • --inspect-port, --debug-port
  • --inspect-publish-uid
  • --inspect-wait
  • --inspect
  • --localstorage-file
  • --max-http-header-size
  • --napi-modules
  • --network-family-autoselection-attempt-timeout
  • --no-addons
  • --no-deprecation
  • --no-experimental-global-navigator
  • --no-experimental-repl-await
  • --no-experimental-sqlite
  • --no-experimental-websocket
  • --no-extra-info-on-fatal-exception
  • --no-force-async-hooks-checks
  • --no-global-search-paths
  • --no-network-family-autoselection
  • --no-warnings
  • --node-memory-debug
  • --openssl-config
  • --openssl-legacy-provider
  • --openssl-shared-config
  • --pending-deprecation
  • --permission
  • --preserve-symlinks-main
  • --preserve-symlinks
  • --prof-process
  • --redirect-warnings
  • --report-compact
  • --report-dir, --report-directory
  • --report-exclude-env
  • --report-exclude-network
  • --report-filename
  • --report-on-fatalerror
  • --report-on-signal
  • --report-signal
  • --report-uncaught-exception
  • --require, -r
  • --secure-heap-min
  • --secure-heap
  • --snapshot-blob
  • --test-coverage-branches
  • --test-coverage-exclude
  • --test-coverage-functions
  • --test-coverage-include
  • --test-coverage-lines
  • --test-name-pattern
  • --test-only
  • --test-reporter-destination
  • --test-reporter
  • --test-shard
  • --test-skip-pattern
  • --throw-deprecation
  • --title
  • --tls-cipher-list
  • --tls-keylog
  • --tls-max-v1.2
  • --tls-max-v1.3
  • --tls-min-v1.0
  • --tls-min-v1.1
  • --tls-min-v1.2
  • --tls-min-v1.3
  • --trace-deprecation
  • --trace-env-js-stack
  • --trace-env-native-stack
  • --trace-env
  • --trace-event-categories
  • --trace-event-file-pattern
  • --trace-events-enabled
  • --trace-exit
  • --trace-require-module
  • --trace-sigint
  • --trace-sync-io
  • --trace-tls
  • --trace-uncaught
  • --trace-warnings
  • --track-heap-objects
  • --unhandled-rejections
  • --use-bundled-ca
  • --use-largepages
  • --use-openssl-ca
  • --v8-pool-size
  • --watch-path
  • --watch-preserve-output
  • --watch
  • --zero-fill-buffers

許可されている V8 オプションは次のとおりです。

  • --abort-on-uncaught-exception
  • --disallow-code-generation-from-strings
  • --enable-etw-stack-walking
  • --expose-gc
  • --interpreted-frames-native-stack
  • --jitless
  • --max-old-space-size
  • --max-semi-space-size
  • --perf-basic-prof-only-functions
  • --perf-basic-prof
  • --perf-prof-unwinding-info
  • --perf-prof
  • --stack-trace-limit

--perf-basic-prof-only-functions--perf-basic-prof--perf-prof-unwinding-info、および --perf-prof は Linux でのみ使用できます。

--enable-etw-stack-walking は Windows でのみ使用できます。

NODE_PATH=path[:…]

追加: v0.1.32

モジュール検索パスの先頭に追加されるディレクトリの ':' で区切られたリストです。

Windows では、代わりに ';' で区切られたリストになります。

NODE_PENDING_DEPRECATION=1

追加: v8.0.0

1 に設定すると、保留中の非推奨警告を発行します。

保留中の非推奨は、一般的にランタイムの非推奨と同じですが、デフォルトで オフ になっており、--pending-deprecation コマンドラインフラグまたは NODE_PENDING_DEPRECATION=1 環境変数が設定されない限り発行されないという点で顕著な例外があります。保留中の非推奨は、開発者が非推奨のAPI使用を検出するために活用できる一種の選択的な「早期警告」メカニズムを提供するために使用されます。

NODE_PENDING_PIPE_INSTANCES=instances

パイプサーバーが接続を待機しているときに保留中のパイプインスタンスハンドルの数を設定します。この設定は Windows のみに適用されます。

NODE_PRESERVE_SYMLINKS=1

追加: v7.1.0

1 に設定すると、モジュールを解決してキャッシュするときに、モジュールローダーにシンボリックリンクを保持するように指示します。

NODE_REDIRECT_WARNINGS=file

追加: v8.0.0

設定すると、プロセスの警告は stderr に出力する代わりに、指定されたファイルに出力されます。ファイルが存在しない場合は作成され、存在する場合は追加されます。警告をファイルに書き込もうとしたときにエラーが発生した場合、警告は代わりに stderr に書き込まれます。これは、--redirect-warnings=file コマンドラインフラグを使用するのと同じです。

NODE_REPL_EXTERNAL_MODULE=file

[履歴]

バージョン変更点
v22.3.0, v20.16.0エンベッダー向けの kDisableNodeOptionsEnv でこの環境変数を使用する可能性を削除しました。
v13.0.0, v12.16.0追加: v13.0.0, v12.16.0

組み込み REPL の代わりに使用される Node.js モジュールへのパス。この値を空文字列 ('') で上書きすると、組み込み REPL が使用されます。

NODE_REPL_HISTORY=file

追加: v3.0.0

永続的な REPL 履歴を保存するために使用されるファイルへのパス。デフォルトのパスは ~/.node_repl_history であり、この変数によって上書きされます。値を空文字列 ('' または ' ') に設定すると、永続的な REPL 履歴が無効になります。

NODE_SKIP_PLATFORM_CHECK=value

追加: v14.5.0

value'1' に等しい場合、Node.js の起動時にサポートされているプラットフォームのチェックがスキップされます。Node.js は正しく実行されない可能性があります。サポートされていないプラットフォームで発生した問題は修正されません。

NODE_TEST_CONTEXT=value

value'child' に等しい場合、テストレポーターのオプションはオーバーライドされ、テスト出力は TAP 形式で stdout に送信されます。他の値が指定された場合、Node.js は使用されるレポーターの形式またはその安定性について保証しません。

NODE_TLS_REJECT_UNAUTHORIZED=value

value'0' に等しい場合、TLS 接続の証明書検証が無効になります。これにより、TLS、そして拡張された HTTPS は安全でなくなります。この環境変数の使用は強く推奨されません。

NODE_V8_COVERAGE=dir

設定すると、Node.js は V8 JavaScript コードカバレッジ および ソースマップ データを引数として指定されたディレクトリに出力し始めます(カバレッジ情報は coverage プレフィックスを持つファイルに JSON として書き込まれます)。

NODE_V8_COVERAGE はサブプロセスに自動的に伝播するため、child_process.spawn() ファミリの関数を呼び出すアプリケーションのインストルメント化が容易になります。NODE_V8_COVERAGE を空の文字列に設定して、伝播を防ぐことができます。

NO_COLOR=<any>

NO_COLORNODE_DISABLE_COLORS のエイリアスです。環境変数の値は任意です。

カバレッジ出力 {#no_color=<any>}

カバレッジは、最上位のキー resultScriptCoverage オブジェクトの配列として出力されます。

json
{
  "result": [
    {
      "scriptId": "67",
      "url": "internal/tty.js",
      "functions": []
    }
  ]
}

ソースマップキャッシュ

[安定版: 1 - 実験的]

安定版: 1 安定性: 1 - 実験的

ソースマップデータが見つかった場合、JSON カバレッジオブジェクトの最上位キー source-map-cache に追加されます。

source-map-cache は、ソースマップが抽出されたファイルを表すキーを持つオブジェクトであり、値には、生のソースマップ URL(キー url 内)、解析されたソースマップ v3 情報(キー data 内)、およびソースファイルの行の長さ(キー lineLengths 内)が含まれます。

json
{
  "result": [
    {
      "scriptId": "68",
      "url": "file:///absolute/path/to/source.js",
      "functions": []
    }
  ],
  "source-map-cache": {
    "file:///absolute/path/to/source.js": {
      "url": "./path-to-map.json",
      "data": {
        "version": 3,
        "sources": [
          "file:///absolute/path/to/original.js"
        ],
        "names": [
          "Foo",
          "console",
          "info"
        ],
        "mappings": "MAAMA,IACJC,YAAaC",
        "sourceRoot": "./"
      },
      "lineLengths": [
        13,
        62,
        38,
        27
      ]
    }
  }
}

OPENSSL_CONF=file

Added in: v6.11.0

起動時にOpenSSL設定ファイルを読み込みます。特に、Node.jsが./configure --openssl-fipsでビルドされている場合、FIPS準拠の暗号化を有効にするために使用できます。

--openssl-configコマンドラインオプションが使用されている場合、この環境変数は無視されます。

SSL_CERT_DIR=dir

Added in: v7.7.0

--use-openssl-caが有効になっている場合、信頼された証明書を含むOpenSSLのディレクトリを上書きして設定します。

子環境が明示的に設定されていない限り、この環境変数はすべての子プロセスに継承され、それらがOpenSSLを使用する場合、Node.jsと同じCAを信頼する可能性があることに注意してください。

SSL_CERT_FILE=file

Added in: v7.7.0

--use-openssl-caが有効になっている場合、信頼された証明書を含むOpenSSLのファイルを上書きして設定します。

子環境が明示的に設定されていない限り、この環境変数はすべての子プロセスに継承され、それらがOpenSSLを使用する場合、Node.jsと同じCAを信頼する可能性があることに注意してください。

TZ

[History]

VersionChanges
v16.2.0process.env.TZ = を使用してTZ変数を変更すると、Windowsでもタイムゾーンが変更されます。
v13.0.0process.env.TZ = を使用してTZ変数を変更すると、POSIXシステムでタイムゾーンが変更されます。
v0.0.1Added in: v0.0.1

TZ環境変数は、タイムゾーン構成を指定するために使用されます。

Node.jsは、他の環境でTZが処理されるさまざまな方法のすべてをサポートしているわけではありませんが、基本的なタイムゾーンID'Etc/UTC''Europe/Paris''America/New_York'など)をサポートしています。 他のいくつかの省略形またはエイリアスをサポートする場合がありますが、これらは強く推奨されず、保証もされていません。

bash
$ TZ=Europe/Dublin node -pe "new Date().toString()"
Wed May 12 2021 20:30:48 GMT+0100 (Irish Standard Time)

UV_THREADPOOL_SIZE=size

libuv のスレッドプールで使用されるスレッド数を size スレッドに設定します。

Node.js では可能な限り非同期システム API が使用されますが、存在しない場合は、libuv のスレッドプールを使用して、同期システム API に基づいた非同期ノード API が作成されます。スレッドプールを使用する Node.js API は次のとおりです。

  • ファイルウォッチャー API と明示的に同期的なものを除く、すべての fs API
  • crypto.pbkdf2()crypto.scrypt()crypto.randomBytes()crypto.randomFill()crypto.generateKeyPair() などの非同期 crypto API
  • dns.lookup()
  • 明示的に同期的なものを除く、すべての zlib API

libuv のスレッドプールのサイズは固定されているため、何らかの理由でこれらの API のいずれかが長時間かかる場合、libuv のスレッドプールで実行される他の(一見無関係な)API のパフォーマンスが低下します。この問題を軽減するために、'UV_THREADPOOL_SIZE' 環境変数を 4(現在のデフォルト値)より大きい値に設定して、libuv のスレッドプールのサイズを大きくすることが考えられます。ただし、process.env.UV_THREADPOOL_SIZE=size を使用してプロセス内部から設定しても、スレッドプールはユーザーコードが実行されるよりもずっと前にランタイム初期化の一部として作成されているため、動作することは保証されません。詳細については、libuv スレッドプールのドキュメントを参照してください。

役立つ V8 オプション

V8 には、独自の CLI オプションのセットがあります。node に提供された V8 CLI オプションは、すべて V8 に渡されて処理されます。V8 のオプションには安定性の保証はありません。V8 チーム自体は、それらを正式な API の一部とは見なしておらず、いつでも変更する権利を留保しています。同様に、それらは Node.js の安定性保証の対象ではありません。V8 オプションの多くは、V8 開発者のみが対象としています。それにもかかわらず、Node.js に広く適用できる V8 オプションの小さなセットがあり、ここに文書化されています。

--abort-on-uncaught-exception

--disallow-code-generation-from-strings

--enable-etw-stack-walking

--expose-gc

--harmony-shadow-realm

--interpreted-frames-native-stack

--jitless

--max-old-space-size=SIZE (MiB単位)

V8の古いメモリセクションの最大メモリサイズを設定します。メモリ消費量が制限に近づくと、V8は未使用メモリを解放するためにガベージコレクションにより多くの時間を費やします。

2 GiBのメモリを搭載したマシンでは、他の用途のためにメモリを残し、スワップを避けるために、これを1536(1.5 GiB)に設定することを検討してください。

bash
node --max-old-space-size=1536 index.js

--max-semi-space-size=SIZE (MiB単位)

V8のスカベンジガベージコレクターの最大セミスペースサイズをMiB(メビバイト)単位で設定します。セミスペースの最大サイズを大きくすると、より多くのメモリを消費する代わりに、Node.jsのスループットが向上する可能性があります。

V8ヒープのヤングジェネレーションサイズはセミスペースのサイズの3倍であるため(V8のYoungGenerationSizeFromSemiSpaceSizeを参照)、セミスペースに1 MiBを追加すると、3つの個々のセミスペースのそれぞれに適用され、ヒープサイズが3 MiB増加します。スループットの向上は、ワークロードによって異なります(#42511を参照)。

デフォルト値は、メモリ制限によって異なります。たとえば、メモリ制限が512 MiBの64ビットシステムでは、セミスペースの最大サイズはデフォルトで1 MiBになります。最大2GiBまでのメモリ制限の場合、セミスペースのデフォルトの最大サイズは、64ビットシステムで16 MiB未満になります。

アプリケーションに最適な構成を取得するには、アプリケーションのベンチマークを実行するときに、さまざまなmax-semi-space-sizeの値を試す必要があります。

たとえば、64ビットシステムのベンチマーク:

bash
for MiB in 16 32 64 128; do
    node --max-semi-space-size=$MiB index.js
done

--perf-basic-prof

--perf-basic-prof-only-functions

--perf-prof

--perf-prof-unwinding-info

--prof

--security-revert

--stack-trace-limit=limit

エラーのスタックトレースに収集するスタックフレームの最大数。0 に設定すると、スタックトレースの収集が無効になります。デフォルト値は 10 です。

bash
node --stack-trace-limit=12 -p -e "Error.stackTraceLimit" # 12 を出力