Skip to content

واجهة برمجة التطبيقات لسطر الأوامر

يأتي Node.js مع مجموعة متنوعة من خيارات سطر الأوامر. تعرض هذه الخيارات تصحيح الأخطاء المدمج، والعديد من الطرق لتنفيذ البرامج النصية، وخيارات وقت التشغيل المفيدة الأخرى.

لعرض هذه الوثائق كصفحة يدوية في محطة، قم بتشغيل 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، راجع وثائق debugger.

نقطة دخول البرنامج

نقطة دخول البرنامج هي سلسلة تشبه المُحدد. إذا لم تكن السلسلة مسارًا مطلقًا، فسيتم حلها كمسار نسبي من دليل العمل الحالي. ثم يتم حل هذا المسار بواسطة مُحمّل وحدة CommonJS. إذا لم يتم العثور على ملف مقابِل، فسيتم إرسال خطأ.

إذا تم العثور على ملف، فسيتم تمرير مساره إلى محمّل وحدة ES في ظل أي من الشروط التالية:

  • تم بدء تشغيل البرنامج باستخدام علم سطر أوامر يُجبر نقطة الدخول على التحميل باستخدام محمّل وحدة ECMAScript، مثل --import.
  • الملف لديه امتداد .mjs.
  • الملف ليس لديه امتداد .cjs، وملف package.json الرئيسي الأقرب يحتوي على حقل "type" من المستوى الأعلى بقيمة "module".

وإلا، يتم تحميل الملف باستخدام مُحمّل وحدة CommonJS. راجع محملات الوحدات لمزيد من التفاصيل.

تحذير نقطة دخول محمّل وحدات ECMAScript

عند التحميل، سيقبل أمر node كمدخل ملفات ذات امتدادات .js أو .mjs أو .cjs فقط؛ وذات امتدادات .wasm عند تمكين --experimental-wasm-modules. يقوم محمّل وحدة ES بتحميل نقطة دخول البرنامج.

الخيارات

[السجل]

الإصدارالتغييرات
v10.12.0يُسمح الآن باستخدام الشرطة السفلية بدلاً من الشرطة العلوية لخيارات Node.js، بالإضافة إلى خيارات V8.

تسمح جميع الخيارات، بما في ذلك خيارات V8، بفصل الكلمات بواسطة كل من الشرطة العلوية (-) أو الشرطة السفلية (_). على سبيل المثال، --pending-deprecation يعادل --pending_deprecation.

إذا تم تمرير خيار يأخذ قيمة واحدة (مثل --max-http-header-size) أكثر من مرة، فسيتم استخدام آخر قيمة تم تمريرها. تأخذ الخيارات من سطر الأوامر الأسبقية على الخيارات التي يتم تمريرها عبر متغير البيئة NODE_OPTIONS.

-

مضاف في: v8.0.0

مُرادف لـ stdin. على غرار استخدام - في أدوات سطر الأوامر الأخرى، مما يعني أن البرنامج النصي يُقرأ من stdin، ويتم تمرير الخيارات المتبقية إلى ذلك البرنامج النصي.

--

مضاف في: v6.11.0

يشير إلى نهاية خيارات العقدة. قم بتمرير باقي الوسائط إلى البرنامج النصي. إذا لم يتم تقديم اسم ملف البرنامج النصي أو برنامج نصي eval/print قبل ذلك، فسيتم استخدام الوسيطة التالية كاسم ملف برنامج نصي.

--abort-on-uncaught-exception

مضاف في: v0.10.8

يؤدي الإلغاء بدلاً من الخروج إلى إنشاء ملف أساسي للتحليل بعد الوفاة باستخدام مُصحح أخطاء (مثل lldb، gdb، و mdb).

إذا تم تمرير هذا العلم، فلا يزال بإمكان تعيين السلوك على عدم الإلغاء من خلال process.setUncaughtExceptionCaptureCallback() (ومن خلال استخدام وحدة node:domain التي تستخدمها).

--allow-addons

مضاف في: v21.6.0، v20.12.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1.1 - تطوير نشط

عند استخدام نموذج الأذونات، لن تتمكن العملية من استخدام الإضافات الأصلية بشكل افتراضي. ستؤدي محاولات القيام بذلك إلى إلقاء ERR_DLOPEN_DISABLED ما لم يمرر المستخدم علم --allow-addons صراحةً عند بدء تشغيل Node.js.

مثال:

js
// محاولة طلب إضافة أصلية
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: لا يمكن تحميل إضافة أصلية لأن تحميل الإضافات معطل.
    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

مضاف في: v20.0.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1.1 - تطوير نشط

عند استخدام نموذج الأذونات، لن تتمكن العملية من إنشاء أي عملية فرعية بشكل افتراضي. ستؤدي محاولات القيام بذلك إلى إلقاء خطأ ERR_ACCESS_DENIED ما لم يمرر المستخدم علم --allow-child-process صراحةً عند بدء تشغيل Node.js.

مثال:

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

[السجل]

الإصدارالتغييرات
v23.5.0أصبح نموذج الأذونات وأعلام --allow-fs مستقرة.
v20.7.0لم تعد المسارات المُفصولة بفاصلة (,) مسموحًا بها.
v20.0.0مضاف في: v20.0.0

[مستقر: 2 - مستقر]

مستقر: 2 استقرار: 2 - مستقر.

يُهيئ هذا العلم أذونات قراءة نظام الملفات باستخدام نموذج الأذونات.

الحجج الصالحة لعلم --allow-fs-read هي:

  • * - للسماح بجميع عمليات FileSystemRead.
  • يمكن السماح بمسارات متعددة باستخدام أعلام --allow-fs-read متعددة. مثال --allow-fs-read=/folder1/ --allow-fs-read=/folder1/

يمكن العثور على الأمثلة في وثائق أذونات نظام الملفات.

يجب أيضًا السماح بوحدة المُنشئ. ضع في اعتبارك المثال التالي:

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.0تمت الإضافة في: v20.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 بشكل افتراضي. لأسباب أمنية، ستطرح المكالمة خطأ ERR_ACCESS_DENIED ما لم يمرر المستخدم العلم --allow-wasi صراحةً في عملية Node.js الرئيسية.

مثال:

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 - تطوير نشط

عند استخدام نموذج الأذونات، لن تتمكن العملية من إنشاء أي مؤشرات ترابط عاملة بشكل افتراضي. لأسباب أمنية، ستطرح المكالمة خطأ ERR_ACCESS_DENIED ما لم يمرر المستخدم العلم --allow-worker صراحةً في عملية Node.js الرئيسية.

مثال:

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

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1 - تجريبي

يُولّد كتلة لقطة عند خروج العملية ويكتبها على القرص، والتي يمكن تحميلها لاحقًا باستخدام --snapshot-blob.

عند إنشاء اللقطة، إذا لم يتم تحديد --snapshot-blob، فسيتم كتابة الكتلة المُولّدة، بشكل افتراضي، إلى snapshot.blob في دليل العمل الحالي. وإلا، فسيتم كتابتها إلى المسار الذي تم تحديده بواسطة --snapshot-blob.

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

# تشغيل snapshot.js لتهيئة التطبيق وإنشاء لقطة لـ {#run-snapshotjs-to-initialize-the-application-and-snapshot-the}
# حالته في snapshot.blob.
$ 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 لتحديد نقطة دخول عند وقت إنشاء اللقطة، وبالتالي تجنب الحاجة إلى برنامج نصي دخول إضافي عند وقت إلغاء التسلسل:

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.

حاليًا، الدعم للقطة وقت التشغيل تجريبي في ذلك:

--build-snapshot-config

تم الإضافة في: v21.6.0، v20.12.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1 - تجريبي

يحدد المسار إلى ملف تكوين JSON الذي يُهيئ سلوك إنشاء اللقطة.

الخيارات التالية مدعومة حاليًا:

  • builder <string> مطلوب. يوفر الاسم إلى البرنامج النصي الذي يتم تنفيذه قبل إنشاء اللقطة، كما لو كان --build-snapshot قد تم تمريره مع builder كاسم البرنامج النصي الرئيسي.
  • withoutCodeCache <boolean> اختياري. يؤدي تضمين ذاكرة التخزين المؤقت للرمز إلى تقليل الوقت الذي يتم إنفاقه في تجميع الوظائف المضمنة في اللقطة على حساب حجم لقطة أكبر وربما كسر قابلية نقل اللقطة.

عند استخدام هذا العلم، لن يتم تنفيذ ملفات البرامج النصية الإضافية المقدمة على سطر الأوامر وبدلاً من ذلك سيتم تفسيرها كوسائط سطر أوامر عادية.

-c, --check

[History]

الإصدارالتغييرات
v10.0.0أصبح خيار --require مدعومًا الآن عند التحقق من ملف.
v5.0.0, v4.2.0تمت الإضافة في: v5.0.0, v4.2.0

التحقق من صحة بناء جملة البرنامج النصي دون تنفيذه.

--completion-bash

تمت الإضافة في: v10.12.0

طباعة برنامج نصي لاستكمال bash قابل للاستخدام لـ Node.js.

bash
node --completion-bash > node_bash_completion
source node_bash_completion

-C condition, --conditions=condition

[History]

الإصدارالتغييرات
v22.9.0, v20.18.0لم يعد هذا العلم تجريبيًا.
v14.9.0, v12.19.0تمت الإضافة في: v14.9.0, v12.19.0

[Stable: 2 - Stable]

مستقر: 2 الاستقرار: 2 - مستقر

توفير شروط دقة تصدير شرطية مخصصة.

يُسمح بأي عدد من أسماء الشروط السلسلة المخصصة.

ستظل شروط Node.js الافتراضية "node" و "default" و "import" و "require" سارية دائمًا كما هو محدد.

على سبيل المثال، لتشغيل وحدة نمطية باستخدام قرارات "التطوير":

bash
node -C development app.js

--cpu-prof

[History]

الإصدارالتغييرات
v22.4.0, v20.16.0أصبحت علامات --cpu-prof مستقرة الآن.
v12.0.0تمت الإضافة في: v12.0.0

[Stable: 2 - Stable]

مستقر: 2 الاستقرار: 2 - مستقر

يبدأ محدد ملف تعريف وحدة المعالجة المركزية V8 عند بدء التشغيل، ويكتب ملف تعريف وحدة المعالجة المركزية على القرص قبل الخروج.

إذا لم يتم تحديد --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

[History]

الإصدارالتغييرات
v22.4.0, v20.16.0أصبحت علامات --cpu-prof مستقرة الآن.
v12.0.0تمت الإضافة في: v12.0.0

[Stable: 2 - Stable]

مستقر: 2 الاستقرار: 2 - مستقر

تحديد الدليل الذي سيتم وضع ملفات تعريف وحدة المعالجة المركزية التي تم إنشاؤها بواسطة --cpu-prof فيه.

يتم التحكم في القيمة الافتراضية بواسطة خيار سطر الأوامر --diagnostic-dir.

--cpu-prof-interval

[السجل]

الإصدارالتغييرات
v22.4.0, v20.16.0أصبحت علامات --cpu-prof مستقرة الآن.
v12.2.0تمت الإضافة في: v12.2.0

[مستقر: 2 - مستقر]

مستقر: 2 الثبات: 2 - مستقر

حدد فاصل أخذ العينات بوحدات الميكروثانية لمحات وحدة المعالجة المركزية التي تم إنشاؤها بواسطة --cpu-prof. القيمة الافتراضية هي 1000 ميكروثانية.

--cpu-prof-name

[السجل]

الإصدارالتغييرات
v22.4.0, v20.16.0أصبحت علامات --cpu-prof مستقرة الآن.
v12.0.0تمت الإضافة في: v12.0.0

[مستقر: 2 - مستقر]

مستقر: 2 الثبات: 2 - مستقر

حدد اسم الملف لمحات وحدة المعالجة المركزية التي تم إنشاؤها بواسطة --cpu-prof.

--diagnostic-dir=directory

عيّن الدليل الذي تُكتب إليه جميع ملفات إخراج التشخيص. القيمة الافتراضية هي الدليل العامل الحالي.

يؤثر على دليل الإخراج الافتراضي لـ:

--disable-proto=mode

تمت الإضافة في: v13.12.0، v12.17.0

تعطيل خاصية Object.prototype.__proto__. إذا كانت mode هي delete، فسيتم إزالة الخاصية بالكامل. إذا كانت mode هي throw، فإن الوصول إلى الخاصية سيرمي استثناءً برمز ERR_PROTO_ACCESS.

--disable-warning=code-or-type

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1.1 - تطوير نشط

تمت الإضافة في: v21.3.0، v20.11.0

تعطيل تحذيرات عمليات محددة بواسطة code أو type.

قد تحتوي التحذيرات المنبعثة من process.emitWarning() على code و type. هذا الخيار لن يُصدر التحذيرات التي لها code أو type مطابق.

قائمة تحذيرات الإهمال.

أنواع تحذيرات Node.js الأساسية هي: DeprecationWarning و ExperimentalWarning

على سبيل المثال، البرنامج النصي التالي لن يصدر DEP0025 require('node:sys') عند تنفيذه باستخدام node --disable-warning=DEP0025:

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

على سبيل المثال، البرنامج النصي التالي سيصدر DEP0025 require('node:sys')، ولكن ليس أي تحذيرات تجريبية (مثل ExperimentalWarning: vm.measureMemory هي ميزة تجريبية في <=v21) عند تنفيذه باستخدام node --disable-warning=ExperimentalWarning:

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 بشكل ملحوظ، لكن هذا التحسين يتطلب تخصيص قفص ذاكرة ظاهرية كبير (10 جيجابايت حاليًا). إذا لم يكن لدى عملية 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 بتعطيل هذا التحسين بحيث يمكن للمستخدمين على الأقل تشغيل WebAssembly (مع أداء أقل مثالية) عندما تكون مساحة عنوان الذاكرة الظاهرية المتاحة لعملية Node.js الخاصة بهم أقل مما يحتاجه قفص ذاكرة WebAssembly في V8.

--disallow-code-generation-from-strings

مضاف في: v9.8.0

جعل ميزات اللغة المدمجة مثل eval و new Function التي تُولّد التعليمات البرمجية من السلاسل تُلقي استثناءً بدلاً من ذلك. هذا لا يؤثر على وحدة node:vm في Node.js.

--dns-result-order=order

[History]

الإصدارالتغييرات
v22.1.0، v20.13.0يتم دعم ipv6first الآن.
v17.0.0تم تغيير القيمة الافتراضية إلى verbatim.
v16.4.0، v14.18.0مضاف في: v16.4.0، v14.18.0

تعيين القيمة الافتراضية لـ order في dns.lookup() و dnsPromises.lookup(). يمكن أن تكون القيمة:

  • ipv4first: يُعيّن order الافتراضي إلى ipv4first.
  • ipv6first: يُعيّن order الافتراضي إلى ipv6first.
  • verbatim: يُعيّن order الافتراضي إلى verbatim.

القيمة الافتراضية هي verbatim و dns.setDefaultResultOrder() لها أولوية أعلى من --dns-result-order.

--enable-fips

مضاف في: v6.0.0

تمكين التشفير المتوافق مع FIPS عند بدء التشغيل. (يتطلب تجميع Node.js مقابل OpenSSL متوافق مع FIPS.)

--enable-network-family-autoselection

مضاف في: v18.18.0

يُمَكّن خوارزمية تحديد العائلة التلقائي ما لم تُعطل خيارات الاتصال ذلك صراحةً.

--enable-source-maps

[السجل]

الإصدارالتغييرات
v15.11.0، v14.18.0لم يعد هذا التطبيق البرمجي تجريبيًا.
v12.12.0مضاف في: v12.12.0

تمكين دعم خريطة المصدر 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

مضاف في: 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

تم الإضافة في: v22.9.0

السلوك هو نفسه كما هو الحال مع --env-file، ولكن لا يتم إطلاق خطأ إذا لم يكن الملف موجودًا.

--env-file=config

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1.1 - تطوير نشط

[السجل]

الإصدارالتغييرات
v21.7.0, v20.12.0إضافة دعم للقيم متعددة الأسطر.
v20.6.0تم الإضافة في: v20.6.0

يقوم بتحميل متغيرات البيئة من ملف نسبي للمسار الحالي، مما يجعلها متاحة للتطبيقات على process.env. يتم تحليل وتطبيق متغيرات البيئة التي تقوم بتكوين Node.js، مثل NODE_OPTIONS. إذا تم تعريف نفس المتغير في البيئة وفي الملف، فإن القيمة من البيئة لها الأسبقية.

يمكنك تمرير عدة وسيطات --env-file. تقوم الملفات اللاحقة بالكتابة فوق المتغيرات الموجودة مسبقًا المعرفة في الملفات السابقة.

يتم إطلاق خطأ إذا لم يكن الملف موجودًا.

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

يجب أن يكون تنسيق الملف سطرًا واحدًا لكل زوج مفتاح-قيمة من اسم متغير البيئة والقيمة مفصولة بـ =:

text
PORT=3000

أي نص بعد # يُعامل كتعليق:

text
# هذا تعليق {#--env-file=config}
PORT=3000 # هذا أيضًا تعليق

يمكن أن تبدأ القيم وتنتهي بعلامات الاقتباس التالية: ```، " أو '`. يتم حذفها من القيم.

text
USERNAME="nodejs" # ستكون النتيجة `nodejs` كقيمة.

يتم دعم القيم متعددة الأسطر:

text
MULTI_LINE="هذا سطر
متعدد الأسطر"
# ستكون النتيجة `هذا سطر\nمتعدد الأسطر` كقيمة. {#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}

[History]

الإصدارالتغييرات
v22.6.0يدعم Eval الآن إزالة الأنواع التجريبية.
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

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1 - تجريبي

يُمكن استخدام AsyncLocalStorage المدعوم بواسطة AsyncContextFrame بدلاً من التنفيذ الافتراضي الذي يعتمد على async_hooks. تم تنفيذ هذا النموذج الجديد بشكل مختلف جدًا، لذلك قد يكون هناك اختلافات في كيفية تدفق بيانات السياق داخل التطبيق. على هذا النحو، يُنصح حاليًا بالتأكد من أن سلوك تطبيقك غير متأثر بهذا التغيير قبل استخدامه في الإنتاج.

--experimental-eventsource

تمت الإضافة في: v22.3.0، v20.18.0

تمكين عرض واجهة برمجة تطبيقات EventSource على الويب على النطاق العام.

--experimental-import-meta-resolve

[History]

الإصدارالتغييرات
v20.6.0، v18.19.0أصبح import.meta.resolve المتزامن متاحًا بشكل افتراضي، مع الاحتفاظ بالعلم لتمكين الوسيطة الثانية التجريبية كما كان مدعومًا سابقًا.
v13.9.0، v12.16.2تمت الإضافة في: v13.9.0، v12.16.2

تمكين دعم عنوان URL الرئيسي التجريبي import.meta.resolve()، والذي يسمح بتمرير وسيطة parentURL ثانية للحل السياقي.

سابقا، كان التحكم في ميزة import.meta.resolve بالكامل.

--experimental-loader=module

[History]

الإصدارالتغييرات
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

إذا كانت وحدة ES النمطية التي يتم require() بها تحتوي على await على مستوى أعلى، فإن هذه العَلَم تسمح لـ Node.js بتقييم الوحدة، ومحاولة تحديد عمليات await على مستوى أعلى، وطباعة موقعها لمساعدة المستخدمين على العثور عليها.

--experimental-require-module

[History]

الإصدارالتغييرات
v23.0.0أصبح هذا صحيحًا افتراضيًا الآن.
v22.0.0، v20.17.0تمت الإضافة في: v22.0.0، v20.17.0

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1.1 - قيد التطوير النشط

يدعم تحميل رسم بياني لوحدة ES نمطية متزامنة في require().

انظر تحميل وحدات ECMAScript باستخدام require().

--experimental-sea-config

تمت الإضافة في: v20.0.0

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1 - تجريبي

استخدم هذه العَلَم لإنشاء كتلة بيانات يمكن حقنها في ثنائي Node.js لإنتاج تطبيق قابل للتنفيذ الفردي. راجع وثائق هذا التكوين للحصول على التفاصيل.

--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

مضاف في: v22.7.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1.1 - تطوير نشط

يُمَكّن تحويل بناء جملة TypeScript فقط إلى رمز JavaScript. يُشير إلى --experimental-strip-types و --enable-source-maps.

--experimental-vm-modules

مضاف في: v9.6.0

يُمَكّن دعم ES Module التجريبي في الوحدة النمطية node:vm.

--experimental-wasi-unstable-preview1

[السجل]

الإصدارالتغييرات
v20.0.0, v18.17.0لم يعد هذا الخيار مطلوبًا نظرًا لتمكين WASI افتراضيًا، لكن لا يزال بإمكانك تمريره.
v13.6.0تم تغييره من --experimental-wasi-unstable-preview0 إلى --experimental-wasi-unstable-preview1.
v13.3.0, v12.16.0مضاف في: v13.3.0, v12.16.0

يُمَكّن دعم واجهة نظام WebAssembly (WASI) التجريبي.

--experimental-wasm-modules

مضاف في: v12.3.0

يُمَكّن دعم وحدة WebAssembly التجريبي.

--experimental-webstorage

مضاف في: v22.4.0

يُمَكّن دعم Web Storage التجريبي.

--expose-gc

مضاف في: v22.3.0, v20.18.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1 - تجريبي. هذا العلم موروث من V8 وهو عرضة للتغيير في المصدر.

سيُظهر هذا العلم امتداد gc من V8.

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

--force-context-aware

مضاف في: v12.12.0

يعطّل تحميل الإضافات الأصلية التي ليست واعية بالسياق.

--force-fips

مضاف في: v6.0.0

يُجبر تشفير متوافق مع FIPS عند بدء التشغيل. (لا يمكن تعطيله من رمز البرنامج النصي.) (نفس متطلبات --enable-fips.)

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

مضاف في: v18.3.0, v16.17.0

يُطبق حدث uncaughtException على عمليات استدعاء Node-API غير المتزامنة.

لتجنب تعطل العملية من إضافة موجودة، لم يتم تمكين هذا العلم افتراضيًا. في المستقبل، سيتم تمكين هذا العلم افتراضيًا لفرض السلوك الصحيح.

--frozen-intrinsics

أضيف في: v11.12.0

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1 - تجريبي

تمكين العناصر الجوهرية المجمدة التجريبية مثل Array و Object.

يتم دعم سياق الجذر فقط. لا يوجد ضمان بأن 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_count من اللقطات قبل أن ينفد ذاكرة مثيل Node.js عندما يكون max_count أكبر من 0.

إن إنشاء لقطات 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. استخدم --require لتحميل وحدة CommonJS. سيتم تشغيل الوحدات المُحمَّلة مسبقًا باستخدام --require قبل الوحدات المُحمَّلة مسبقًا باستخدام --import.

يتم تحميل الوحدات مسبقًا في الخيط الرئيسي بالإضافة إلى أي خيوط عاملة، أو عمليات مُفرّعة، أو عمليات مُجمَّعة.

--input-type=type

مضاف في: v12.0.0

يُهيئ هذا Node.js لترجمة مُدخلة --eval أو STDIN كلغة CommonJS أو كوحدة ES. القيم الصالحة هي "commonjs" أو "module". القيمة الافتراضية هي "commonjs".

لا يدعم REPL هذا الخيار. سيؤدي استخدام --input-type=module مع --print إلى إلقاء خطأ، حيث أن --print لا يدعم بناء جملة وحدة ES.

--insecure-http-parser

مضاف في: v13.4.0، v12.15.0، v10.19.0

تمكين علامات التسامح على محلل HTTP. قد يسمح هذا بالتوافق مع عمليات تنفيذ HTTP غير المطابقة للمواصفات.

عند التمكين، سيقبل المحلل ما يلي:

  • قيم رؤوس HTTP غير صالحة.
  • إصدارات HTTP غير صالحة.
  • السماح بالرسائل التي تحتوي على رؤوس Transfer-Encoding و Content-Length معًا.
  • السماح بالبيانات الإضافية بعد الرسالة عندما يكون Connection: close موجودًا.
  • السماح بتشفير النقل الإضافي بعد توفير chunked.
  • السماح باستخدام \n كفاصل رمز بدلاً من \r\n.
  • السماح بعدم توفير \r\n بعد جزء.
  • السماح بوجود مسافات بعد حجم الجزء وقبل \r\n.

ستعرض كل ما سبق تطبيقك لهجوم التهريب أو التسميم للطلبات. تجنب استخدام هذا الخيار.

تحذير: ربط المُفتش بـ IP عام: مزيج المنفذ غير آمن

إن ربط المُفتش بـ IP عام (بما في ذلك 0.0.0.0) مع منفذ مفتوح أمر غير آمن، لأنه يسمح للخوادم الخارجية بالاتصال بالمُفتش وإجراء هجوم تنفيذ التعليمات البرمجية عن بُعد.

إذا كنت تحدد مضيفًا، فتأكد من أن:

  • المضيف غير قابل للوصول من الشبكات العامة.
  • يمنع جدار الحماية الاتصالات غير المرغوب فيها على المنفذ.

على وجه التحديد، --inspect=0.0.0.0 غير آمن إذا لم يتم حماية المنفذ (9229 افتراضيًا) بواسطة جدار الحماية.

راجع قسم التأثيرات الأمنية للتصحيح لمزيد من المعلومات.

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

مضاف في: v7.6.0

تفعيل المُفتش على host:port والانقطاع عند بداية البرنامج النصي للمستخدم. host:port الافتراضي هو 127.0.0.1:9229. إذا تم تحديد المنفذ 0، فسيتم استخدام منفذ عشوائي متاح.

راجع تكامل مفتش V8 لنظام Node.js لمزيد من الشرح حول مصحح أخطاء Node.js.

--inspect-port=[host:]port

مضاف في: v7.6.0

قم بتعيين host:port ليتم استخدامه عند تفعيل المُفتش. مفيد عند تفعيل المُفتش عن طريق إرسال إشارة SIGUSR1.

المضيف الافتراضي هو 127.0.0.1. إذا تم تحديد المنفذ 0، فسيتم استخدام منفذ عشوائي متاح.

راجع تحذير الأمان أدناه فيما يتعلق باستخدام معلمة host.

--inspect-publish-uid=stderr,http

تحديد طرق عرض عنوان ويب سوكيت مُفتّش الأخطاء.

بشكل افتراضي، يكون عنوان ويب سوكيت مُفتّش الأخطاء متاحًا في stderr وتحت نقطة نهاية /json/list على http://host:port/json/list.

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

مُضاف في: v22.2.0، v20.15.0

تفعيل مُفتّش الأخطاء على host:port والانتظار حتى يتم إرفاق مُصحح الأخطاء. الافتراضي لـ host:port هو 127.0.0.1:9229. إذا تم تحديد المنفذ 0، فسيتم استخدام منفذ عشوائي متاح.

راجع تكامل مُفتّش V8 مع Node.js لمزيد من الشرح حول مُصحح أخطاء Node.js.

--inspect[=[host:]port]

مُضاف في: v6.3.0

تفعيل مُفتّش الأخطاء على host:port. الافتراضي هو 127.0.0.1:9229. إذا تم تحديد المنفذ 0، فسيتم استخدام منفذ عشوائي متاح.

يسمح تكامل مُفتّش V8 لأدوات مثل Chrome DevTools و IDEs بتصحيح أخطاء مثيلات Node.js وتحديد ملفاتها الشخصية. ترتبط الأدوات بمثيلات Node.js عبر منفذ TCP وتتواصل باستخدام بروتوكول Chrome DevTools. راجع تكامل مُفتّش V8 مع Node.js لمزيد من الشرح حول مُصحح أخطاء Node.js.

-i, --interactive

مُضاف في: v0.7.7

يفتح REPL حتى إذا لم يبدو أن stdin هو محطة طرفية.

--jitless

مُضاف في: v12.0.0

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1 - تجريبي. هذه العَلَم مُوروث من V8 وهو عرضة للتغيير من المصدر.

تعطيل تخصيص وقت التشغيل للذاكرة القابلة للتنفيذ. قد يكون هذا مطلوبًا على بعض الأنظمة لأسباب أمنية. يمكنه أيضًا تقليل مساحة الهجوم على الأنظمة الأخرى، لكن تأثير الأداء قد يكون شديدًا.

--localstorage-file=file

مُضاف في: v22.4.0

الملف المستخدم لتخزين بيانات localStorage. إذا لم يكن الملف موجودًا، فسيتم إنشاؤه في المرة الأولى التي يتم فيها الوصول إلى localStorage. يمكن مشاركة نفس الملف بين العديد من عمليات Node.js بشكل متزامن. هذه العَلَم لا تؤثر إلا إذا تم تشغيل Node.js باستخدام علم --experimental-webstorage.

--max-http-header-size=size

[السجل]

الإصدارالتغييرات
v13.13.0تغيير الحد الأقصى لحجم رؤوس HTTP الافتراضي من 8 كيلوبايت إلى 16 كيلوبايت.
v11.6.0، v10.15.0تمت الإضافة في: v11.6.0، v10.15.0

تحديد الحد الأقصى لحجم رؤوس HTTP بالبايت. القيمة الافتراضية هي 16 كيلوبايت.

--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++ سيؤدي إلى الفشل ورمي استثناء.

--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 على النطاق العام.

--no-experimental-repl-await

تمت الإضافة في: v16.6.0

استخدم هذا العلم لتعطيل الانتظار على أعلى مستوى في REPL.

--no-experimental-require-module

[السجل]

الإصدارالتغييرات
v23.0.0أصبحت هذه القيمة خاطئة افتراضيًا الآن.
v22.0.0، v20.17.0تمت الإضافة في: v22.0.0، v20.17.0

[مستقر: 1 - تجريبي]

مستقر: 1 الثبات: 1.1 - قيد التطوير النشط

تعطيل دعم تحميل رسم بياني وحدة ES متزامن في require().

راجع تحميل وحدات ECMAScript باستخدام require().

--no-experimental-sqlite

[History]

الإصدارالتغييرات
v23.4.0تم إلغاء تحديد SQLite ولكنه لا يزال تجريبيًا.
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

[History]

الإصدارالتغييرات
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 عند بدء التشغيل. من بين الاستخدامات الأخرى، يمكن استخدام هذا لتمكين التشفير المتوافق مع FIPS إذا تم إنشاء Node.js مقابل 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. تُستخدم عمليات الإهمال المعلقة لتوفير نوع من آلية "التحذير المبكر" الانتقائية التي قد يستفيد منها المطورون لاكتشاف استخدام واجهة برمجة التطبيقات المُهملة.

--permission

[السجل]

الإصدارالتغييرات
v23.5.0أصبح نموذج الأذونات الآن مستقرًا.
v20.0.0تمت الإضافة في: v20.0.0

[مستقر: 2 - مستقر]

مستقر: 2 الثبات: 2 - مستقر.

تمكين نموذج الأذونات لعملية حالية. عند التمكين، سيتم تقييد الأذونات التالية:

  • نظام الملفات - قابل للإدارة من خلال أعلام --allow-fs-read، --allow-fs-write
  • عملية فرعية - قابلة للإدارة من خلال علم --allow-child-process
  • مؤشرات الترابط للعمليات - قابلة للإدارة من خلال علم --allow-worker
  • WASI - قابلة للإدارة من خلال علم --allow-wasi
  • الوظائف الإضافية - قابلة للإدارة من خلال علم --allow-addons

--preserve-symlinks

أضيف في: v6.3.0

يوجه مُحمِّل الوحدات إلى الحفاظ على الوصلات الرمزية عند حل الوحدات وتخزينها مؤقتًا.

بشكل افتراضي، عندما يقوم Node.js بتحميل وحدة من مسار مرتبط رمزياً بموقع مختلف على القرص، سيقوم Node.js بإلغاء مرجع الرابط واستخدام "المسار الحقيقي" الفعلي على القرص للوحدة كمعرف وكمسار جذر للعثور على وحدات التبعية الأخرى. في معظم الحالات، يكون هذا السلوك الافتراضي مقبولاً. ومع ذلك، عند استخدام التبعيات المتناظرة المرتبطة رمزياً، كما هو موضح في المثال أدناه، يتسبب السلوك الافتراضي في طرح استثناء إذا حاولت moduleA طلب moduleB كتبعية متناظرة:

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 هذه الوحدات ك وحدتين منفصلتين وسيحاول تحميل الوحدة عدة مرات، مما يتسبب في طرح استثناء).

لا ينطبق علم --preserve-symlinks على الوحدة الرئيسية، مما يسمح لـ node --preserve-symlinks node_module/.bin/\<foo\> بالعمل. لتطبيق نفس السلوك للوحدة الرئيسية، استخدم أيضًا --preserve-symlinks-main.

تم الإضافة في: 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.4تم الإضافة في: v0.6.4

مطابق لـ -e لكنه يُطبع النتيجة.

--prof

تم الإضافة في: v2.0.0

توليد مُخرجات مُحسِّن V8.

--prof-process

تم الإضافة في: v5.2.0

معالجة مُخرجات مُحسِّن V8 المُولَّدة باستخدام خيار V8 --prof.

--redirect-warnings=file

تم الإضافة في: v8.0.0

كتابة تحذيرات العملية في الملف المُعطى بدلاً من الطباعة في stderr. سيتم إنشاء الملف إذا لم يكن موجودًا، وسيتم إلحاقه به إذا كان موجودًا. إذا حدث خطأ أثناء محاولة كتابة التحذير في الملف، فسيتم كتابة التحذير إلى stderr بدلاً من ذلك.

قد يكون اسم file مسارًا مطلقًا. إذا لم يكن كذلك، فسيتم التحكم في الدليل الافتراضي الذي سيتم الكتابة إليه بواسطة خيار سطر الأوامر --diagnostic-dir.

--report-compact

تم الإضافة في: 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.0تم الإضافة في: v11.8.0

الموقع الذي سيتم فيه إنشاء التقرير.

--report-exclude-env

أضيف في: v23.3.0

عند تمرير --report-exclude-env، لن يحتوي تقرير التشخيص المُولّد على بيانات environmentVariables.

--report-exclude-network

أضيف في: 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.0أضيف في: 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.0أضيف في: 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.0أضيف في: 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.0أضيف في: 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.0تمت الإضافة في: v11.8.0

يُمَكّن إنشاء تقرير عند خروج العملية بسبب استثناء غير مُعالج. مفيد عند فحص مُكدس JavaScript بالاقتران مع مُكدس النظام وبيانات بيئة التشغيل الأخرى.

-r, --require module

تمت الإضافة في: v1.6.0

قم بتحميل الوحدة المُحددة مسبقًا عند بدء التشغيل.

يتبع قواعد حل الوحدات الخاصة بـ require() . قد يكون module مسارًا إلى ملف، أو اسم وحدة عقدة.

يتم دعم وحدات CommonJS فقط. استخدم --import لتحميل وحدة ECMAScript مسبقًا. ستُشغّل الوحدات المُحمّلة مسبقًا باستخدام --require قبل الوحدات المُحمّلة مسبقًا باستخدام --import.

يتم تحميل الوحدات مسبقًا في الخيط الرئيسي بالإضافة إلى أي خيوط عامل، أو عمليات مُفرّعة، أو عمليات مُجمّعة.

--run

[السجل]

الإصدارالتغييرات
v22.3.0تم إضافة متغير بيئة NODE_RUN_SCRIPT_NAME.
v22.3.0تم إضافة متغير بيئة NODE_RUN_PACKAGE_JSON_PATH.
v22.3.0يتجول لأعلى حتى الدليل الجذر ويجد ملف package.json لتشغيل الأمر منه، ويُحدّث متغير بيئة PATH وفقًا لذلك.
v22.0.0تمت الإضافة في: v22.0.0

[مستقر: 2 - مستقر]

مستقر: 2 الثبات: 2 - مستقر

هذا يُشغّل أمرًا مُحددًا من كائن "scripts" الخاص بـ package.json. إذا تم توفير "command" مفقود، فسوف يُدرج البرامج النصية المتاحة.

سيتجول --run لأعلى حتى الدليل الجذر ويجد ملف package.json لتشغيل الأمر منه.

يُضيف --run ./node_modules/.bin لكل سلف من الدليل الحالي، إلى PATH لتنفيذ الملفات الثنائية من مجلدات مختلفة حيث توجد العديد من أدلة node_modules، إذا كان ancestor-folder/node_modules/.bin دليلًا.

يُنفّذ --run الأمر في الدليل الذي يحتوي على ملف package.json ذي الصلة.

على سبيل المثال، سيُشغّل الأمر التالي البرنامج النصي test لملف package.json في المجلد الحالي:

bash
$ node --run test

يمكنك أيضًا تمرير الوسائط إلى الأمر. سيتم إضافة أي وسيطة بعد -- إلى البرنامج النصي:

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

القيود المتعمدة

node --run لا يُقصد بها مطابقة سلوكيات npm 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. يجب أن تكون القيمة المعطاة قوة من اثنين.

--secure-heap=n

مضاف في: v15.6.0

يُنشئ كومة أمان OpenSSL من n بايت. عند التهيئة، تُستخدم كومة الأمان لأنواع محددة من التخصيصات داخل OpenSSL أثناء إنشاء المفتاح والعمليات الأخرى. هذا مفيد، على سبيل المثال، لمنع تسرب المعلومات الحساسة بسبب تجاوزات المؤشرات أو نقصها.

كومّة الأمان ذات حجم ثابت ولا يمكن تغيير حجمها أثناء وقت التشغيل، لذلك، إذا تم استخدامها، من المهم اختيار كومة كبيرة بما يكفي لتغطية جميع استخدامات التطبيق.

يجب أن يكون حجم الكومة المعطى قوة من اثنين. أي قيمة أقل من 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.0أُضيف في: v18.1.0, v16.17.0

يُشغّل مُشغّل اختبارات سطر الأوامر في Node.js. لا يمكن دمج هذه العَلَم مع --watch-path, --check, --eval, --interactive, أو المُفتّش. راجع وثائق تشغيل الاختبارات من سطر الأوامر لمزيد من التفاصيل.

--test-concurrency

أُضيف في: v21.0.0, v20.10.0, v18.19.0

العدد الأقصى من ملفات الاختبار التي سيُنفّذها مُشغّل اختبارات سطر الأوامر بالتزامن. إذا تم ضبط --experimental-test-isolation على 'none', فسيتم تجاهل هذه العَلَم وسيكون التزامن واحدًا. خلاف ذلك، يكون التزامن افتراضيًا 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

تم الإضافة في: v22.5.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1 - تجريبي

يتضمن ملفات محددة في تغطية التعليمات البرمجية باستخدام نمط عام، والذي يمكن أن يطابق مسارات الملفات المطلقة والنسبيّة على حد سواء.

يمكن تحديد هذا الخيار عدة مرات لتضمين أنماط عامة متعددة.

إذا تم توفير كلا الخيارين --test-coverage-exclude و --test-coverage-include، فيجب أن تستوفي الملفات كلا المعيارين ليتم تضمينها في تقرير التغطية.

--test-coverage-lines=threshold

تم الإضافة في: v22.8.0

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1 - تجريبي

يتطلب الحد الأدنى للنسبة المئوية من الأسطر المغطاة. إذا لم تصل تغطية التعليمات البرمجية إلى الحد المحدد، فستخرج العملية برمز 1.

--test-force-exit

تم الإضافة في: v22.0.0، v20.14.0

يقوم بتكوين أداة تشغيل الاختبار لإنهاء العملية بمجرد الانتهاء من تنفيذ جميع اختبارات معروفة حتى لو ظلت حلقة الأحداث نشطة.

--test-name-pattern

[السجل]

الإصدارالتغييرات
v20.0.0أصبحت أداة تشغيل الاختبار الآن مستقرة.
v18.11.0تم الإضافة في: v18.11.0

تعبيرات عادية تقوم بتكوين أداة تشغيل الاختبار لتنفيذ الاختبارات التي يطابق اسمها النمط المقدم فقط. راجع وثائق تصفية الاختبارات حسب الاسم لمزيد من التفاصيل.

إذا تم توفير كلا الخيارين --test-name-pattern و --test-skip-pattern، فيجب أن تلبي الاختبارات كلا الشرطين ليتم تنفيذها.

--test-only

[السجل]

الإصدارالتغييرات
v20.0.0أصبحت أداة تشغيل الاختبار الآن مستقرة.
v18.0.0، v16.17.0تم الإضافة في: v18.0.0، v16.17.0

يقوم بتكوين أداة تشغيل الاختبار لتنفيذ اختبارات المستوى الأعلى فقط التي تم تعيين خيار only لها. هذا العلم ليس ضروريًا عندما يكون عزل الاختبار معطلًا.

--test-reporter

[السجل]

الإصدارالتغييرات
v20.0.0أصبحت أداة تشغيل الاختبار الآن مستقرة.
v19.6.0، v18.15.0تم الإضافة في: v19.6.0، v18.15.0

مُبلغ اختبار لاستخدامه عند تشغيل الاختبارات. راجع وثائق مُبلغات الاختبار لمزيد من التفاصيل.

--test-reporter-destination

[History]

الإصدارالتغييرات
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.

على سبيل المثال، لتقسيم مجموعة اختباراتك إلى ثلاثة أجزاء، استخدم هذا:

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

[History]

الإصدارالتغييرات
v23.4.0لم يعد اختبار الـ Snapsnot تجريبيًا.
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 مبنيًا مع دعم التشفير (افتراضيًا).

--tls-keylog=file

أضيف في: v13.2.0، v12.16.0

سجل مادة مفتاح TLS في ملف. تكون مادة المفتاح بتنسيق NSS SSLKEYLOGFILE، ويمكن استخدامها بواسطة برامج (مثل Wireshark) لفك تشفير حركة مرور TLS.

--tls-max-v1.2

أضيف في: v12.0.0، v10.20.0

عيّن tls.DEFAULT_MAX_VERSION إلى 'TLSv1.2'. استخدمه لتعطيل دعم TLSv1.3.

--tls-max-v1.3

أضيف في: v12.0.0

عيّن القيمة الافتراضية لـ tls.DEFAULT_MAX_VERSION إلى 'TLSv1.3'. استخدمه لتمكين دعم TLSv1.3.

--tls-min-v1.0

أضيف في: v12.0.0، v10.20.0

عيّن القيمة الافتراضية لـ tls.DEFAULT_MIN_VERSION إلى 'TLSv1'. استخدمه للتوافق مع عملاء أو خوادم TLS القديمة.

--tls-min-v1.1

أضيف في: v12.0.0، v10.20.0

عيّن القيمة الافتراضية لـ tls.DEFAULT_MIN_VERSION إلى 'TLSv1.1'. استخدمه للتوافق مع عملاء أو خوادم TLS القديمة.

--tls-min-v1.2

أضيف في: v12.2.0، v10.20.0

عيّن القيمة الافتراضية لـ tls.DEFAULT_MIN_VERSION إلى 'TLSv1.2'. هذه هي القيمة الافتراضية للإصدار 12.x وما بعده، ولكن الخيار مدعوم للتوافق مع إصدارات Node.js الأقدم.

--tls-min-v1.3

أضيف في: v12.0.0

عيّن القيمة الافتراضية لـ tls.DEFAULT_MIN_VERSION إلى 'TLSv1.3'. استخدمه لتعطيل دعم TLSv1.2، الذي ليس آمناً مثل TLSv1.3.

--trace-deprecation

أضيف في: v0.8.0

اطبع تتبعات المكدس للتحذيرات من إهمال.

--trace-env

أضيف في: 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

يُطبع معلومات حول استخدام تحميل وحدات ECMAScript باستخدام require().

عندما يكون mode هو all، يتم طباعة جميع الاستخدامات. عندما يكون mode هو no-node-modules، يتم استبعاد الاستخدام من مجلد node_modules.

--trace-sigint

مُضاف في: v13.9.0، v12.17.0

يُطبع مُتتبع مُكدس على SIGINT.

--trace-sync-io

مُضاف في: v2.1.0

يُطبع مُتتبع مُكدس كلما تم اكتشاف مدخل/مخرج مُزامن بعد الدورة الأولى لحلقة الحدث.

--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 الحالي أو استخدم مخزن شهادات OpenSSL الافتراضي. يُمكن تحديد مخزن الإعدادات الافتراضي وقت التجميع.

مخزن شهادات موزيلا المضمّن، كما هو مقدم من Node.js، هو لقطة لحظة من مخزن شهادات موزيلا ثابتة وقت الإصدار. وهو مُطابق على جميع المنصات المدعومة.

يسمح استخدام مخزن OpenSSL بالتعديلات الخارجية على المخزن. بالنسبة لمعظم توزيعات Linux و BSD، يتم صيانة هذا المخزن بواسطة مُحافظي التوزيعات ومسؤولي النظام. يعتمد موقع مخزن OpenSSL CA على تكوين مكتبة OpenSSL، لكن يمكن تغيير ذلك وقت التشغيل باستخدام متغيرات البيئة.

راجع SSL_CERT_DIR و SSL_CERT_FILE.

--use-largepages=mode

تم الإضافة في: v13.6.0، v12.17.0

إعادة تعيين رمز Node.js الثابت إلى صفحات ذاكرة كبيرة عند بدء التشغيل. إذا تم دعم ذلك على النظام الهدف، فسيتسبب هذا في نقل رمز Node.js الثابت إلى صفحات 2 ميجابايت بدلاً من صفحات 4 كيلوبايت.

القيم التالية صالحة لـ mode:

  • off: لن تتم أي محاولة تعيين. هذا هو الإعداد الافتراضي.
  • on: إذا دعمته نظام التشغيل، فسيتم محاولة التعيين. سيتم تجاهل فشل التعيين وسيتم طباعة رسالة إلى خطأ قياسي.
  • silent: إذا دعمته نظام التشغيل، فسيتم محاولة التعيين. سيتم تجاهل فشل التعيين ولن يتم الإبلاغ عنه.

--v8-options

تم الإضافة في: v0.1.3

طباعة خيارات سطر أوامر V8.

--v8-pool-size=num

تم الإضافة في: v5.10.0

تعيين حجم تجمع مؤشرات الترابط لـ V8 والذي سيتم استخدامه لتخصيص وظائف الخلفية.

إذا تم تعيينه على 0، فستختار Node.js حجمًا مناسبًا لمجموعة مؤشرات الترابط بناءً على تقدير لكمية التوازي.

تشير كمية التوازي إلى عدد العمليات الحسابية التي يمكن تنفيذها في وقت واحد في جهاز معين. بشكل عام، إنها نفس كمية وحدات المعالجة المركزية، ولكنها قد تختلف في بيئات مثل آلات افتراضية أو حاويات.

-v, --version

تم الإضافة في: v0.1.3

طباعة إصدار node.

--watch

[السجل]

الإصدارالتغييرات
v22.0.0، v20.13.0أصبح وضع المراقبة الآن مستقرًا.
v19.2.0، v18.13.0يدعم برنامج تشغيل الاختبار الآن التشغيل في وضع المراقبة.
v18.11.0، v16.19.0تم الإضافة في: v18.11.0، v16.19.0

[مستقر: 2 - مستقر]

مستقر: 2 الاستقرار: 2 - مستقر

يبدأ Node.js في وضع المراقبة. عندما يكون في وضع المراقبة، تتسبب التغييرات في الملفات التي يتم مراقبتها في إعادة تشغيل عملية Node.js. بشكل افتراضي، سيراقب وضع المراقبة نقطة الدخول وأي وحدة مطلوبة أو مستوردة. استخدم --watch-path لتحديد المسارات التي سيتم مراقبتها.

لا يمكن دمج هذه العلامة مع --check، --eval، --interactive، أو REPL.

bash
node --watch index.js

--watch-path

[السجل]

الإصدارالتغييرات
v22.0.0، v20.13.0أصبح وضع المراقبة الآن مستقرًا.
v18.11.0، v16.19.0تمت الإضافة في: v18.11.0، v16.19.0

[مستقر: 2 - مستقر]

مستقر: 2 الثبات: 2 - مستقر

يبدأ تشغيل Node.js في وضع المراقبة ويحدد المسارات التي سيتم مراقبتها. عند وضع المراقبة، تتسبب التغييرات في المسارات التي يتم مراقبتها في إعادة تشغيل عملية Node.js. سيؤدي هذا إلى إيقاف مراقبة الوحدات المطلوبة أو المستوردة، حتى عند استخدامها مع --watch.

لا يمكن دمج هذه العلامة مع --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. قد تكون القيمة:

  • 1، true، أو السلسلة الفارغة '' تشير إلى دعم 16 لونًا،
  • 2 للإشارة إلى دعم 256 لونًا، أو
  • 3 للإشارة إلى دعم 16 مليون لون.

عندما يتم استخدام FORCE_COLOR ويتم تعيينه إلى قيمة مدعومة، يتم تجاهل متغيري البيئة NO_COLOR و NODE_DISABLE_COLORS.

ستؤدي أي قيمة أخرى إلى تعطيل الإخراج الملون.

NODE_COMPILE_CACHE=dir

تمت الإضافة في: v22.1.0

[مستقر: 1 - تجريبي]

مستقر: 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

عند تعيينه، سيتم توسيع سلطات التصديق الجذرية المعروفة (مثل VeriSign) بشهادات إضافية في file. يجب أن يتكون الملف من شهادة أو أكثر موثوقة بتنسيق PEM. سيتم إرسال رسالة (مرة واحدة) باستخدام process.emitWarning() إذا كان الملف مفقودًا أو تالفًا، ولكن سيتم تجاهل أي أخطاء أخرى.

لا تُستخدم شهادات معروفة أو إضافية عندما يتم تحديد خاصية خيارات ca بشكل صريح لخادم أو عميل TLS أو HTTPS.

يتم تجاهل متغير البيئة هذا عندما يعمل node كجذر setuid أو تم تعيين إمكانيات ملف Linux.

لا يتم قراءة متغير البيئة NODE_EXTRA_CA_CERTS إلا عند بدء تشغيل عملية Node.js لأول مرة. لا يؤثر تغيير القيمة أثناء وقت التشغيل باستخدام process.env.NODE_EXTRA_CA_CERTS على العملية الحالية.

NODE_ICU_DATA=file

مضاف في: v0.11.15

مسار البيانات لبيانات ICU (Intl object). سيتم توسيع البيانات المرتبطة عند التجميع مع دعم small-icu.

NODE_NO_WARNINGS=1

مضاف في: v6.11.0

عندما يتم تعيينه إلى 1، يتم إسكات تحذيرات العملية.

NODE_OPTIONS=options...

مضاف في: v8.0.0

قائمة مفصولة بمسافات من خيارات سطر الأوامر. يتم تفسير options... قبل خيارات سطر الأوامر، لذلك ستحل خيارات سطر الأوامر محل أو تجمع بعد أي شيء في options.... سيخرج Node.js بخطأ إذا تم استخدام خيار غير مسموح به في البيئة، مثل -p أو ملف نص برمجي.

إذا كانت قيمة الخيار تحتوي على مسافة، فيمكن تجنبها باستخدام علامتي اقتباس مزدوجتين:

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، فسيتم دعم كليهما ولكن واحد فقط مدرج في القائمة أدناه.

  • --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

قائمة مفصولة بـ ':' من الدلائل المضافة إلى مسار البحث عن الوحدات.

في ويندوز، هذه قائمة مفصولة بـ ';' بدلاً من ذلك.

NODE_PENDING_DEPRECATION=1

مضاف في: v8.0.0

عند تعيينه إلى 1، قم بإصدار تحذيرات الإهمال المعلقة.

إن الإهمالات المعلقة متطابقة بشكل عام مع إهمال وقت التشغيل مع الاستثناء الملحوظ أنها مُعطلة بشكل افتراضي ولن يتم إصدارها إلا إذا تم تعيين علم سطر الأوامر --pending-deprecation، أو متغير بيئة NODE_PENDING_DEPRECATION=1. تُستخدم الإهمالات المعلقة لتوفير نوع من آلية "التحذير المبكر" الانتقائية التي يمكن للمطورين الاستفادة منها لاكتشاف استخدام واجهة برمجة التطبيقات المُهملة.

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

مسار إلى وحدة Node.js التي سيتم تحميلها بدلاً من REPL المدمج. سيؤدي تجاوز هذه القيمة إلى سلسلة فارغة ('') إلى استخدام 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'، فسيتم تجاوز خيارات مُبلغ الاختبار وسيتم إرسال مخرجات الاختبار إلى stdout بتنسيق TAP. إذا تم توفير أي قيمة أخرى، فإن Node.js لا يضمن تنسيق المُبلغ المُستخدم أو استقراره.

NODE_TLS_REJECT_UNAUTHORIZED=value

إذا كانت قيمة value تساوي '0'، فسيتم تعطيل التحقق من الشهادة لاتصالات TLS. هذا يجعل TLS، و HTTPS بالتمديد، غير آمن. يُنصح بشدة بعدم استخدام هذا متغير البيئة.

NODE_V8_COVERAGE=dir

عند التعيين، سيبدأ Node.js في إخراج بيانات تغطية رمز جافا سكريبت V8 وخريطة المصدر إلى الدليل المُقدم كوسيط (تُكتب معلومات التغطية بتنسيق JSON في ملفات باسم بادئة coverage).

سيتم نشر NODE_V8_COVERAGE تلقائيًا إلى العمليات الفرعية، مما يسهل أداة التسجيل للتطبيقات التي تستدعي مجموعة دوال child_process.spawn(). يمكن تعيين NODE_V8_COVERAGE إلى سلسلة فارغة لمنع الانتشار.

NO_COLOR=&lt;any&gt;

NO_COLOR هو اسم مستعار لـ NODE_DISABLE_COLORS. قيمة متغير البيئة تعسفية.

مخرجات التغطية {#no_color=<any>}

يتم إخراج التغطية كمصفوفة من كائنات ScriptCoverage على المفتاح الرئيسي result:

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

ذاكرة التخزين المؤقت لخريطة المصدر

[مستقر: 1 - تجريبي]

مستقر: 1 استقرار: 1 - تجريبي

إذا تم العثور عليها، فسيتم إضافة بيانات خريطة المصدر إلى المفتاح الرئيسي source-map-cache على كائن تغطية JSON.

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

تم الإضافة في: v6.11.0

تحميل ملف تكوين OpenSSL عند بدء التشغيل. من بين الاستخدامات الأخرى، يمكن استخدام هذا لتمكين التشفير المتوافق مع FIPS إذا تم بناء Node.js باستخدام ./configure --openssl-fips.

إذا تم استخدام خيار سطر الأوامر --openssl-config ، فسيتم تجاهل متغير البيئة.

SSL_CERT_DIR=dir

تم الإضافة في: v7.7.0

إذا تم تمكين --use-openssl-ca، فهذا يتجاوز ويحدد دليل OpenSSL الذي يحتوي على الشهادات الموثوق بها.

يرجى العلم بأنه ما لم يتم تعيين بيئة الطفل بشكل صريح، فسيتم توريث متغير البيئة هذا بواسطة أي عمليات فرعية، وإذا استخدمت OpenSSL، فقد يتسبب ذلك في جعلها تثق بنفس سلطات الإصدار مثل node.

SSL_CERT_FILE=file

تم الإضافة في: v7.7.0

إذا تم تمكين --use-openssl-ca، فهذا يتجاوز ويحدد ملف OpenSSL الذي يحتوي على الشهادات الموثوق بها.

يرجى العلم بأنه ما لم يتم تعيين بيئة الطفل بشكل صريح، فسيتم توريث متغير البيئة هذا بواسطة أي عمليات فرعية، وإذا استخدمت OpenSSL، فقد يتسبب ذلك في جعلها تثق بنفس سلطات الإصدار مثل node.

TZ

[السجل]

الإصدارالتغييرات
v16.2.0تغيير متغير TZ باستخدام process.env.TZ = يغير المنطقة الزمنية على Windows أيضًا.
v13.0.0تغيير متغير TZ باستخدام process.env.TZ = يغير المنطقة الزمنية على أنظمة POSIX.
v0.0.1تم الإضافة في: v0.0.1

يستخدم متغير البيئة TZ لتحديد تكوين المنطقة الزمنية.

بينما لا يدعم Node.js جميع الطرق التي يتم التعامل بها مع TZ في بيئات أخرى، إلا أنه يدعم معرفات المناطق الزمنية الأساسية (مثل '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 واجهات برمجة التطبيقات لنظام غير متزامن كلما أمكن ذلك، ولكن عندما لا توجد، يتم استخدام تجمع مؤشرات ترابط libuv لإنشاء واجهات برمجة تطبيقات عقدة غير متزامنة بناءً على واجهات برمجة تطبيقات النظام المتزامن. واجهات برمجة تطبيقات Node.js التي تستخدم تجمع مؤشرات الترابط هي:

  • جميع واجهات برمجة التطبيقات fs، بخلاف واجهات برمجة تطبيقات مراقبة الملفات وتلك التي تكون متزامنة صراحةً
  • واجهات برمجة التطبيقات المشفرة غير المتزامنة مثل crypto.pbkdf2()، crypto.scrypt()، crypto.randomBytes()، crypto.randomFill()، crypto.generateKeyPair()
  • dns.lookup()
  • جميع واجهات برمجة التطبيقات zlib، بخلاف تلك التي تكون متزامنة صراحةً

نظرًا لأن تجمع مؤشرات ترابط libuv له حجم ثابت، فهذا يعني أنه إذا استغرقت أي من هذه واجهات برمجة التطبيقات وقتًا طويلاً لأي سبب من الأسباب، فإن واجهات برمجة التطبيقات الأخرى (التي تبدو غير ذات صلة) التي تعمل في تجمع مؤشرات ترابط libuv ستواجه انخفاضًا في الأداء. للتخفيف من هذه المشكلة، فإن أحد الحلول المحتملة هو زيادة حجم تجمع مؤشرات ترابط libuv عن طريق تعيين متغير البيئة 'UV_THREADPOOL_SIZE' إلى قيمة أكبر من 4 (قيمته الافتراضية الحالية). ومع ذلك، فإن تعيين هذا من داخل العملية باستخدام process.env.UV_THREADPOOL_SIZE=size ليس مضمونًا للعمل لأن تجمع مؤشرات الترابط سيتم إنشاؤه كجزء من تهيئة وقت التشغيل قبل تشغيل رمز المستخدم بكثير. لمزيد من المعلومات، راجع وثائق تجمع مؤشرات ترابط libuv.

خيارات V8 المفيدة

يحتوي V8 على مجموعة خاصة به من خيارات سطر الأوامر. سيتم تمرير أي خيار سطر أوامر V8 مُقدم إلى node إلى V8 للمعالجة. خيارات V8 ليس لديها ضمان للاستقرار. لا يعتبر فريق V8 نفسه أنها جزء من واجهة برمجة التطبيقات الرسمية الخاصة بهم، ويحتفظون بالحق في تغييرها في أي وقت. وبالمثل، فهي غير مغطاة بضمانات استقرار Node.js. العديد من خيارات V8 تهم مطوري V8 فقط. على الرغم من ذلك، هناك مجموعة صغيرة من خيارات V8 قابلة للتطبيق على نطاق واسع على Node.js، وهي موثقة هنا:

--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 جيجابايت من الذاكرة، ضع في اعتبارك تعيين هذا إلى 1536 (1.5 جيجابايت) لترك بعض الذاكرة للاستخدامات الأخرى وتجنب التبديل.

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

--max-semi-space-size=SIZE (بـ MiB)

يحدد الحد الأقصى لحجم مساحة نصفي لـ جامع قمامة البحث المتسلسل في V8 بوحدة MiB (ميجابايت). قد يؤدي زيادة الحد الأقصى لحجم المساحة النصفي إلى تحسين الإنتاجية لـ Node.js على حساب استهلاك المزيد من الذاكرة.

بما أن حجم الجيل الشاب من كومة V8 هو ثلاثة أضعاف (انظر YoungGenerationSizeFromSemiSpaceSize في V8) حجم المساحة النصفي، فإن زيادة قدرها 1 MiB في المساحة النصفي تنطبق على كل من مساحات النصفي الثلاثة الفردية وتتسبب في زيادة حجم الكومة بمقدار 3 MiB. تعتمد تحسينات الإنتاجية على حمل عملك (انظر #42511).

تعتمد القيمة الافتراضية على حد الذاكرة. على سبيل المثال، في الأنظمة 64 بت التي يبلغ حد ذاكرتها 512 MiB، تكون القيمة القصوى الافتراضية لمساحة النصفي هي 1 MiB. بالنسبة لحدود الذاكرة التي تصل إلى 2 جيجابايت شاملة، ستكون القيمة القصوى الافتراضية لمساحة نصفي أقل من 16 MiB في الأنظمة 64 بت.

للحصول على أفضل تكوين لتطبيقك، يجب عليك تجربة قيم مختلفة لـ 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