Skip to content

واجهة برمجة تطبيقات سطر الأوامر (Command-line 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 في أي من الشروط التالية:

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

بخلاف ذلك، يتم تحميل الملف باستخدام أداة تحميل وحدة CommonJS. راجع أدوات تحميل الوحدات لمزيد من التفاصيل.

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

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

الخيارات

[السجل]

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

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

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

-

أُضيف في: الإصدار 8.0.0

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

--

أُضيف في: الإصدار 6.11.0

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

--abort-on-uncaught-exception

أُضيف في: الإصدار 0.10.8

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

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

--allow-addons

أُضيف في: الإصدار 21.6.0، الإصدار 20.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: 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

تمت إضافته في: الإصدار 20.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تمت إضافته في: الإصدار 20.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

تمت الإضافة في: الإصدار 18.8.0

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

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

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

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

bash
$ echo "globalThis.foo = 'أنا من نقطة الاسترجاع'" > 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
أنا من نقطة الاسترجاع

يمكن استخدام v8.startupSnapshot API لتحديد نقطة دخول في وقت إنشاء نقطة الاسترجاع، وبالتالي تجنب الحاجة إلى برنامج نصي إدخال إضافي في وقت إلغاء التسلسل:

bash
$ echo "require('v8').startupSnapshot.setDeserializeMainFunction(() => console.log('أنا من نقطة الاسترجاع'))" > snapshot.js
$ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js
$ node --snapshot-blob snapshot.blob
أنا من نقطة الاسترجاع

لمزيد من المعلومات، تحقق من وثائق v8.startupSnapshot API.

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

--build-snapshot-config

تمت الإضافة في: الإصدار 21.6.0، الإصدار 20.12.0

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

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

يحدد المسار إلى ملف تكوين JSON الذي يكوّن سلوك إنشاء نقطة الاسترجاع.

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

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

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

-c, --check

[التاريخ]

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

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

--completion-bash

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

طباعة برنامج نصي لإكمال باش المصدر لـ Node.js.

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.0تمت الإضافة في: v14.9.0, v12.19.0

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

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

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

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

سيتم تطبيق شروط Node.js الافتراضية "node" و "default" و "import" و "require" دائمًا على النحو المحدد.

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

bash
node -C development app.js

--cpu-prof

[التاريخ]

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

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

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

[التاريخ]

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

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

مستقر: 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 الخاصة بهم أقل مما يحتاجه قفص ذاكرة V8 WebAssembly.

--disallow-code-generation-from-strings

أضيف في: v9.8.0

اجعل ميزات اللغة المضمنة مثل eval و new 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

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

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

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

--enable-fips

أضيف في: الإصدار 6.0.0

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

--enable-network-family-autoselection

أضيف في: الإصدار 18.18.0

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

--enable-source-maps

[السجل]

الإصدارالتغييرات
v15.11.0, v14.18.0لم تعد واجهة برمجة التطبيقات هذه تجريبية.
v12.12.0أضيف في: الإصدار 12.12.0

تمكين دعم خريطة المصدر الإصدار 3 لتتبعات المكدس.

عند استخدام مترجم ، مثل 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

أضيف في: الإصدار 23.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

أضيف في: الإصدار 22.9.0

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

--env-file=config

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

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

[التاريخ]

الإصدارالتغييرات
الإصدار 21.7.0، الإصدار 20.12.0إضافة دعم للقيم متعددة الأسطر.
الإصدار 20.6.0أضيف في: الإصدار 20.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="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.0يدعم Eval الآن تجريد الأنواع التجريبي.
v5.11.0المكتبات المضمنة متاحة الآن كمتغيرات محددة مسبقًا.
v0.5.2تمت إضافته في: v0.5.2

تقييم الوسيطة التالية كجافاسكربت. يمكن أيضًا استخدام الوحدات النمطية المحددة مسبقًا في 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 Web API على النطاق العام.

--experimental-import-meta-resolve

[تاريخ]

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

[السجل]

الإصدارالتغييرات
v12.11.1تمت إعادة تسمية هذا العلم من --loader إلى --experimental-loader.
v8.8.0تمت إضافته في: v8.8.0

حدد الوحدة التي تحتوي على خطافات تخصيص الوحدة النمطية المصدرة. يمكن أن تكون الوحدة أي سلسلة مقبولة كمحدد import.

--experimental-network-inspection

تمت إضافته في: v22.6.0، v20.18.0

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

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

قم بتمكين الدعم التجريبي لفحص الشبكة باستخدام أدوات مطوري Chrome.

--experimental-print-required-tla

تمت إضافته في: v22.0.0، v20.17.0

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

--experimental-require-module

[السجل]

الإصدارالتغييرات
v23.0.0هذا صحيح الآن بشكل افتراضي.
v22.0.0, v20.17.0تمت إضافته في: v22.0.0, v20.17.0

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

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

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

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

--experimental-sea-config

تمت إضافته في: v20.0.0

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

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

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

--experimental-shadow-realm

أضيف في: الإصدار 19.0.0، الإصدار 18.13.0

استخدم هذا العلم لتمكين دعم ShadowRealm.

--experimental-strip-types

أضيف في: الإصدار 22.6.0

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

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

تمكين تجريد الأنواع التجريبي لملفات TypeScript. لمزيد من المعلومات، راجع وثائق تجريد أنواع TypeScript.

--experimental-test-coverage

[السجل]

الإصدارالتغييرات
الإصدار 20.1.0، الإصدار 18.17.0يمكن استخدام هذا الخيار مع --test.
الإصدار 19.7.0، الإصدار 18.15.0أضيف في: الإصدار 19.7.0، الإصدار 18.15.0

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

--experimental-test-isolation=mode

أضيف في: الإصدار 22.8.0

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

مستقر: 1 الاستقرار: 1.0 - تطوير مبكر

يقوم بتكوين نوع عزل الاختبار المستخدم في أداة تشغيل الاختبار. عندما يكون mode هو 'process'، يتم تشغيل كل ملف اختبار في عملية فرعية منفصلة. عندما يكون mode هو 'none'، يتم تشغيل جميع ملفات الاختبار في نفس عملية أداة تشغيل الاختبار. وضع العزل الافتراضي هو 'process'. يتم تجاهل هذا العلم إذا لم يكن العلم --test موجودًا. راجع قسم نموذج تنفيذ أداة تشغيل الاختبار لمزيد من المعلومات.

--experimental-test-module-mocks

أضيف في: الإصدار 22.3.0، الإصدار 20.18.0

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

مستقر: 1 الاستقرار: 1.0 - تطوير مبكر

تمكين محاكاة الوحدة في أداة تشغيل الاختبار.

--experimental-transform-types

أضيف في: v22.7.0

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

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

تمكن تحويل تركيب TypeScript فقط إلى كود JavaScript. يتضمن --experimental-strip-types و--enable-source-maps.

--experimental-vm-modules

أضيف في: v9.6.0

تمكين دعم وحدات ES التجريبية في وحدة 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 هو بالفعل المرجع الداخلي الافتراضي. قد يتعطل الكود تحت هذه العلامة.

للسماح بإضافة polyfills، يتم تشغيل كل من --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

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

--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:port عامة غير آمن

يعد ربط المدقق بعنوان 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 Inspector لـ 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

تحديد طرق عرض عنوان URL لمأخذ توصيل ويب أداة الفحص.

بشكل افتراضي، يتوفر عنوان URL لمأخذ توصيل ويب أداة الفحص في الخطأ القياسي وضمن نقطة النهاية /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 Inspector لـ Node.js للحصول على مزيد من التوضيحات حول مصحح أخطاء Node.js.

--inspect[=[host:]port]

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

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

يتيح تكامل V8 inspector لأدوات مثل Chrome DevTools و IDEs تصحيح أخطاء ملفات Node.js وتوصيفها. تتصل الأدوات بملفات Node.js عبر منفذ tcp وتتواصل باستخدام بروتوكول أدوات مطوري Chrome. راجع تكامل V8 Inspector لـ 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

استخدم هذا العلم لتعطيل المستوى الأعلى await في 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

[السجل]

الإصدارالتغييرات
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 عند بدء التشغيل. من بين الاستخدامات الأخرى، يمكن استخدام هذا لتمكين التشفير المتوافق مع 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

الحد الأقصى لعدد ملفات الاختبار التي سيقوم CLI الخاص بمشغل الاختبار بتنفيذها بشكل متزامن. إذا تم تعيين --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 - تجريبي

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

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

إذا تم توفير كل من --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 - تجريبي

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

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

إذا تم توفير كل من --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

[السجل]

الإصدارالتغييرات
الإصدار 20.0.0أصبح تشغيل الاختبار الآن مستقرًا.
الإصدار 19.6.0، الإصدار 18.15.0تمت الإضافة في: الإصدار 19.6.0، الإصدار 18.15.0

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

--test-shard

تمت الإضافة في: الإصدار 20.5.0، الإصدار 18.19.0

شريحة مجموعة الاختبارات المراد تنفيذها بتنسيق \<الفهرس\>/\<الإجمالي\>، حيث

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

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

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

--test-skip-pattern

تمت الإضافة في: الإصدار 22.1.0

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

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

--test-timeout

تمت الإضافة في: الإصدار 21.2.0، الإصدار 20.11.0

عدد بالمللي ثانية يفشل تنفيذ الاختبار بعده. إذا لم يتم تحديده، فإن الاختبارات الفرعية ترث هذه القيمة من الأصل الخاص بها. القيمة الافتراضية هي Infinity.

--test-update-snapshots

[السجل]

الإصدارالتغييرات
الإصدار 23.4.0اختبار اللقطات لم يعد تجريبيًا.
الإصدار 22.3.0تمت الإضافة في: الإصدار 22.3.0

يعيد إنشاء ملفات اللقطات التي يستخدمها مشغل الاختبار لـ اختبار اللقطات.

--throw-deprecation

تمت الإضافة في: الإصدار 0.11.14

طرح أخطاء بسبب الإهمال.

--title=title

تمت الإضافة في: الإصدار 10.7.0

قم بتعيين process.title عند بدء التشغيل.

--tls-cipher-list=list

تمت الإضافة في: الإصدار 4.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 الحالي إلى الخطأ القياسي، بما في ذلك:

  • قراءات متغيرات البيئة التي يقوم بها 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

أُضيف في: الإصدار 2.4.0

تتبع تخصيصات كائنات الكومة للقطات الكومة.

--unhandled-rejections=mode

[السجل]

الإصدارالتغييرات
الإصدار 15.0.0تم تغيير الوضع الافتراضي إلى throw. في السابق، كان يتم إصدار تحذير.
الإصدار 12.0.0, v10.17.0أُضيف في: الإصدار 12.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

أُضيف في: الإصدار 6.11.0

استخدم مخزن Mozilla CA المجمّع كما هو مقدم من قبل إصدار Node.js الحالي أو استخدم مخزن CA الافتراضي لـ OpenSSL. يمكن تحديد المخزن الافتراضي في وقت الإنشاء.

مخزن CA المجمّع، كما هو مقدم من قبل Node.js، هو لقطة لمخزن Mozilla CA الذي يتم تثبيته في وقت الإصدار. وهو مطابق على جميع الأنظمة الأساسية المدعومة.

يتيح استخدام مخزن 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). سيتم توسيع البيانات المرتبطة عند تجميعها مع دعم 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

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

في نظام التشغيل Windows، هذه قائمة مفصولة بـ ';' بدلاً من ذلك.

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

تمت الإضافة في: الإصدار 14.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 JavaScript وبيانات خريطة المصدر إلى الدليل المقدم كمعامل (تتم كتابة معلومات التغطية كـ 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)، ومعلومات Source Map 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، فقد يتسبب ذلك في أن تثق بنفس هيئات التصديق (CA) مثل Node.

SSL_CERT_FILE=file

أُضيف في: الإصدار v7.7.0

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

انتبه إلى أنه ما لم يتم تعيين بيئة العملية الفرعية بشكل صريح، فسيتم توريث متغير البيئة هذا بواسطة أي عمليات فرعية، وإذا كانت تستخدم OpenSSL، فقد يتسبب ذلك في أن تثق بنفس هيئات التصديق (CA) مثل 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=حجم

تعيين عدد الخيوط المستخدمة في مجموعة خيوط libuv إلى حجم من الخيوط.

تُستخدم واجهات برمجة تطبيقات النظام غير المتزامنة بواسطة 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 مجموعة الخيارات الخاصة بها في CLI. سيتم تمرير أي خيار V8 CLI يتم توفيره إلى 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 (بالميبيبايت)

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

على جهاز به 2 جيجابايت من الذاكرة، ضع في اعتبارك تعيين هذا إلى 1536 (1.5 جيجابايت) لترك بعض الذاكرة للاستخدامات الأخرى وتجنب التبديل.

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

--max-semi-space-size=SIZE (بالميبيبايت)

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

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

تعتمد القيمة الافتراضية على حد الذاكرة. على سبيل المثال، في الأنظمة 64 بت بحد ذاكرة 512 ميبيبايت، يكون الحد الأقصى لحجم نصف المساحة الافتراضي هو 1 ميبيبايت. بالنسبة لحدود الذاكرة التي تصل إلى 2 جيجابايت بما في ذلك، سيكون الحد الأقصى الافتراضي لحجم نصف المساحة أقل من 16 ميبيبايت على أنظمة 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" # prints 12