واجهة برمجة التطبيقات لسطر الأوامر
يأتي 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.
مثال:
// محاولة طلب إضافة أصلية
require('nodejs-addon-example')
$ 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.
مثال:
const childProcess = require('node:child_process')
// محاولة تجاوز الإذن
childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("/new-file", "example")'])
$ 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/
يمكن العثور على الأمثلة في وثائق أذونات نظام الملفات.
يجب أيضًا السماح بوحدة المُنشئ. ضع في اعتبارك المثال التالي:
$ 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
:
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 |
يُهيئ هذا العلم أذونات الكتابة على نظام الملفات باستخدام نموذج الأذونات.
الحجج الصالحة لعلم --allow-fs-write
هي:
*
- للسماح بجميع عملياتFileSystemWrite
.- يمكن السماح بمسارات متعددة باستخدام أعلام
--allow-fs-write
متعددة. مثال--allow-fs-write=/folder1/ --allow-fs-write=/folder1/
لم تعد المسارات المحددة بفاصلة (,
) مسموحًا بها. عند تمرير علم واحد بفاصلة، سيتم عرض تحذير.
يمكن العثور على أمثلة في وثائق أذونات نظام الملفات.
--allow-wasi
تمت الإضافة في: v22.3.0، v20.16.0
عند استخدام نموذج الأذونات، لن تكون العملية قادرة على إنشاء أي مثيلات WASI بشكل افتراضي. لأسباب أمنية، ستطرح المكالمة خطأ ERR_ACCESS_DENIED
ما لم يمرر المستخدم العلم --allow-wasi
صراحةً في عملية Node.js الرئيسية.
مثال:
const { WASI } = require('node:wasi')
// محاولة تجاوز الإذن
new WASI({
version: 'preview1',
// محاولة تحميل نظام الملفات بالكامل
preopens: {
'/': '/',
},
})
$ 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
عند استخدام نموذج الأذونات، لن تتمكن العملية من إنشاء أي مؤشرات ترابط عاملة بشكل افتراضي. لأسباب أمنية، ستطرح المكالمة خطأ ERR_ACCESS_DENIED
ما لم يمرر المستخدم العلم --allow-worker
صراحةً في عملية Node.js الرئيسية.
مثال:
const { Worker } = require('node:worker_threads')
// محاولة تجاوز الإذن
new Worker(__filename)
$ 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
.
$ 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
لتحديد نقطة دخول عند وقت إنشاء اللقطة، وبالتالي تجنب الحاجة إلى برنامج نصي دخول إضافي عند وقت إلغاء التسلسل:
$ 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.
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" سارية دائمًا كما هو محدد.
على سبيل المثال، لتشغيل وحدة نمطية باستخدام قرارات "التطوير":
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
.
$ 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 |
حدد فاصل أخذ العينات بوحدات الميكروثانية لمحات وحدة المعالجة المركزية التي تم إنشاؤها بواسطة --cpu-prof
. القيمة الافتراضية هي 1000 ميكروثانية.
--cpu-prof-name
[السجل]
الإصدار | التغييرات |
---|---|
v22.4.0, v20.16.0 | أصبحت علامات --cpu-prof مستقرة الآن. |
v12.0.0 | تمت الإضافة في: v12.0.0 |
حدد اسم الملف لمحات وحدة المعالجة المركزية التي تم إنشاؤها بواسطة --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
تمت الإضافة في: 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
:
import sys from 'node:sys'
const sys = require('node:sys')
على سبيل المثال، البرنامج النصي التالي سيصدر DEP0025 require('node:sys')
، ولكن ليس أي تحذيرات تجريبية (مثل ExperimentalWarning: vm.measureMemory
هي ميزة تجريبية في <=v21) عند تنفيذه باستخدام node --disable-warning=ExperimentalWarning
:
import sys from 'node:sys'
import vm from 'node:vm'
vm.measureMemory()
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 ينطوي على تخصيص في هذا القفص ذاكرة الظاهرية وسيظهر خطأ نفاد الذاكرة.
$ 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
الأصلية في الدالة المُجاوزة لتعديل مسار المكدس باستخدام خرائط المصدر.
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
عند وجوده، سيُفسر Node.js نقطة الدخول كعنوان URL، وليس كمسار.
يتبع قواعد حل وحدة النمط ECMAScript.
ستكون أي معلمة استعلام أو علامة تصنيف في عنوان URL قابلة للوصول عبر import.meta.url
.
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
. تقوم الملفات اللاحقة بالكتابة فوق المتغيرات الموجودة مسبقًا المعرفة في الملفات السابقة.
يتم إطلاق خطأ إذا لم يكن الملف موجودًا.
node --env-file=.env --env-file=.development.env index.js
يجب أن يكون تنسيق الملف سطرًا واحدًا لكل زوج مفتاح-قيمة من اسم متغير البيئة والقيمة مفصولة بـ =
:
PORT=3000
أي نص بعد #
يُعامل كتعليق:
# هذا تعليق {#--env-file=config}
PORT=3000 # هذا أيضًا تعليق
يمكن أن تبدأ القيم وتنتهي بعلامات الاقتباس التالية: ```، " أو
'`. يتم حذفها من القيم.
USERNAME="nodejs" # ستكون النتيجة `nodejs` كقيمة.
يتم دعم القيم متعددة الأسطر:
MULTI_LINE="هذا سطر
متعدد الأسطر"
# ستكون النتيجة `هذا سطر\nمتعدد الأسطر` كقيمة. {#this-is-a-comment}
يتم تجاهل كلمة المفتاح export
قبل المفتاح:
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
يُمكن استخدام 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
تمكين الدعم التجريبي لفحص الشبكة باستخدام 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 |
يدعم تحميل رسم بياني لوحدة ES نمطية متزامنة في require()
.
انظر تحميل وحدات ECMAScript باستخدام require()
.
--experimental-sea-config
تمت الإضافة في: v20.0.0
استخدم هذه العَلَم لإنشاء كتلة بيانات يمكن حقنها في ثنائي Node.js لإنتاج تطبيق قابل للتنفيذ الفردي. راجع وثائق هذا التكوين للحصول على التفاصيل.
--experimental-shadow-realm
مضاف في: v19.0.0، v18.13.0
استخدم هذه العَلَم لتمكين دعم ShadowRealm.
--experimental-strip-types
مضاف في: v22.6.0
قم بتمكين إزالة الأنواع التجريبية لملفات 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
يُهيئ نوع عزل الاختبار المستخدم في تشغيل الاختبار. عندما يكون mode
هو 'process'
، يتم تشغيل كل ملف اختبار في عملية فرعية منفصلة. عندما يكون mode
هو 'none'
، يتم تشغيل جميع ملفات الاختبار في نفس العملية مثل تشغيل الاختبار. وضع العزل الافتراضي هو 'process'
. يتم تجاهل هذه العَلَم إذا لم يكن علم --test
موجودًا. راجع قسم نموذج تنفيذ تشغيل الاختبار لمزيد من المعلومات.
--experimental-test-module-mocks
مضاف في: v22.3.0، v20.18.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.
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
تمكين العناصر الجوهرية المجمدة التجريبية مثل Array
و Object
.
يتم دعم سياق الجذر فقط. لا يوجد ضمان بأن globalThis.Array
هو بالفعل مرجع جوهر داخلي افتراضي. قد تتسبب التعليمات البرمجية في حدوث خطأ بموجب هذا العلم.
لسماح بإضافة مُحسّنات، يتم تشغيل كل من --require
و --import
قبل تجميد العناصر الجوهرية.
--heap-prof
[السجل]
الإصدار | التغييرات |
---|---|
v22.4.0، v20.16.0 | أصبحت علامات --heap-prof مستقرة الآن. |
v12.4.0 | أضيف في: v12.4.0 |
يبدأ محدد ملف تعريف كومة V8 عند بدء التشغيل، ويكتب ملف تعريف الكومة على القرص قبل الخروج.
إذا لم يتم تحديد --heap-prof-dir
، فسيتم وضع الملف الشخصي المُولّد في الدليل العامل الحالي.
إذا لم يتم تحديد --heap-prof-name
، فسيتم تسمية الملف الشخصي المُولّد Heap.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.heapprofile
.
$ 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 |
حدد الدليل الذي سيتم وضع ملفات تعريف الكومة التي تم إنشاؤها بواسطة --heap-prof
فيه.
يتم التحكم في القيمة الافتراضية بواسطة خيار سطر الأوامر --diagnostic-dir
.
--heap-prof-interval
[السجل]
الإصدار | التغييرات |
---|---|
v22.4.0، v20.16.0 | أصبحت علامات --heap-prof مستقرة الآن. |
v12.4.0 | أضيف في: v12.4.0 |
حدد متوسط فاصل أخذ العينات بالبايت لملفات تعريف الكومة التي تم إنشاؤها بواسطة --heap-prof
. القيمة الافتراضية هي 512 * 1024 بايت.
--heap-prof-name
[السجل]
الإصدار | التغييرات |
---|---|
v22.4.0, v20.16.0 | أصبحت علامات --heap-prof مستقرة الآن. |
v12.4.0 | تمت الإضافة في: v12.4.0 |
حدد اسم الملف لملف تعريف الكومة الذي تم إنشاؤه بواسطة --heap-prof
.
--heapsnapshot-near-heap-limit=max_count
تمت الإضافة في: v15.1.0، v14.18.0
يكتب لقطة لحظة من كومة 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، وسيبذل قصارى جهده لتجنب استخدام كل الذاكرة المتاحة للعملية. عندما تستخدم العملية ذاكرة أكثر مما يراه النظام مناسبًا، قد يتم إنهاء العملية فجأة بواسطة النظام، وهذا يعتمد على تكوين النظام.
$ 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
اسم إشارة صالحًا. معطل افتراضيًا.
$ 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
تحميل الوحدة المُحدَّدة مسبقًا عند بدء التشغيل. إذا تم توفير العلم عدة مرات، فسيتم تنفيذ كل وحدة بالتسلسل بالترتيب الذي تظهر به، بدءًا من تلك المُقدَّمة في 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
تعطيل عرض واجهة برمجة تطبيقات 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 |
تعطيل دعم تحميل رسم بياني وحدة 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 |
تمكين نموذج الأذونات لعملية حالية. عند التمكين، سيتم تقييد الأذونات التالية:
- نظام الملفات - قابل للإدارة من خلال أعلام
--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
كتبعية متناظرة:
{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
.
--preserve-symlinks-main
تم الإضافة في: v10.2.0
يلزم مُحمِّل الوحدة بالحفاظ على الوصلات الرمزية عند حل وتخزين الوحدة الرئيسية (require.main
).
توجد هذه العَلَم حتى يمكن اختيار الوحدة الرئيسية للسلوك نفسه الذي يوفره --preserve-symlinks
لجميع الواردات الأخرى؛ ومع ذلك، فهي أعلام منفصلة، من أجل التوافق مع الإصدارات القديمة من Node.js.
لا يعني --preserve-symlinks-main
استخدام --preserve-symlinks
؛ استخدم --preserve-symlinks-main
بالإضافة إلى --preserve-symlinks
عندما لا يكون من المرغوب فيه تتبع الوصلات الرمزية قبل حل المسارات النسبية.
راجع --preserve-symlinks
لمزيد من المعلومات.
-p
, --print "script"
[السجل]
الإصدار | التغييرات |
---|---|
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 |
هذا يُشغّل أمرًا مُحددًا من كائن "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
في المجلد الحالي:
$ node --run test
يمكنك أيضًا تمرير الوسائط إلى الأمر. سيتم إضافة أي وسيطة بعد --
إلى البرنامج النصي:
$ 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
عند استخدامه مع --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
.
--test-coverage-exclude
أُضيف في: v22.5.0
يستبعد ملفات مُحددة من تغطية الكود باستخدام نمط عام، والذي يمكن أن يُطابق مسارات الملفات المُطلقة والنسبيّة.
يمكن تحديد هذا الخيار عدة مرات لاستبعاد أنماط عامة متعددة.
إذا تم توفير كل من --test-coverage-exclude
و --test-coverage-include
، فيجب أن تستوفي الملفات كلا المعيارين ليتم تضمينها في تقرير التغطية.
افتراضيًا، يتم استبعاد جميع ملفات الاختبار المُطابقة من تقرير التغطية. سيؤدي تحديد هذا الخيار إلى تجاوز السلوك الافتراضي.
--test-coverage-functions=threshold
أُضيف في: v22.8.0
يتطلب الحد الأدنى للنسبة المئوية للدوال المُغطاة. إذا لم تصل تغطية الكود إلى الحد المُحدد، فستخرج العملية برمز 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
.
على سبيل المثال، لتقسيم مجموعة اختباراتك إلى ثلاثة أجزاء، استخدم هذا:
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.
node --watch index.js
--watch-path
[السجل]
الإصدار | التغييرات |
---|---|
v22.0.0، v20.13.0 | أصبح وضع المراقبة الآن مستقرًا. |
v18.11.0، v16.19.0 | تمت الإضافة في: v18.11.0، v16.19.0 |
يبدأ تشغيل Node.js في وضع المراقبة ويحدد المسارات التي سيتم مراقبتها. عند وضع المراقبة، تتسبب التغييرات في المسارات التي يتم مراقبتها في إعادة تشغيل عملية Node.js. سيؤدي هذا إلى إيقاف مراقبة الوحدات المطلوبة أو المستوردة، حتى عند استخدامها مع --watch
.
لا يمكن دمج هذه العلامة مع --check
، --eval
، --interactive
، --test
، أو REPL.
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
تعطيل مسح وحدة التحكم عند إعادة تشغيل وضع المراقبة للعملية.
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
تمكين ذاكرة التخزين المؤقتة لتجميع الوحدات لمثيل 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
أو ملف نص برمجي.
إذا كانت قيمة الخيار تحتوي على مسافة، فيمكن تجنبها باستخدام علامتي اقتباس مزدوجتين:
NODE_OPTIONS='--require "./my path/file.js"'
ستحل علامة فردية يتم تمريرها كخيار لسطر الأوامر محل نفس العلم الممرر إلى NODE_OPTIONS
:
# سيكون مفتش الأخطاء متاحًا على المنفذ 5555 {#node_options=options}
NODE_OPTIONS='--inspect=localhost:4444' node --inspect=localhost:5555
سيتم التعامل مع العلم الذي يمكن تمريره عدة مرات كما لو كانت مثيلات NODE_OPTIONS
الخاصة به قد تم تمريرها أولاً، ثم مثيلات سطر الأوامر الخاصة به بعد ذلك:
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=<any>
NO_COLOR
هو اسم مستعار لـ NODE_DISABLE_COLORS
. قيمة متغير البيئة تعسفية.
مخرجات التغطية {#no_color=<any>}
يتم إخراج التغطية كمصفوفة من كائنات ScriptCoverage على المفتاح الرئيسي result
:
{
"result": [
{
"scriptId": "67",
"url": "internal/tty.js",
"functions": []
}
]
}
ذاكرة التخزين المؤقت لخريطة المصدر
[مستقر: 1 - تجريبي]
مستقر: 1 استقرار: 1 - تجريبي
إذا تم العثور عليها، فسيتم إضافة بيانات خريطة المصدر إلى المفتاح الرئيسي source-map-cache
على كائن تغطية JSON.
source-map-cache
هو كائن بمفاتيح تمثل الملفات التي تم استخراج خرائط المصدر منها، والقيم التي تتضمن عنوان URL لخريطة المصدر الخام (في المفتاح url
)، ومعلومات خريطة المصدر المُفسرة v3 (في المفتاح data
)، وأطوال الأسطر من ملف المصدر (في المفتاح lineLengths
).
{
"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'
). قد يدعم بعض الاختصارات أو الأسماء المستعارة الأخرى، ولكن يُنصح بشدة بتجنب هذه الاختصارات والأسماء المستعارة، وهي غير مضمونة.
$ 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 جيجابايت) لترك بعض الذاكرة للاستخدامات الأخرى وتجنب التبديل.
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 بت:
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.
node --stack-trace-limit=12 -p -e "Error.stackTraceLimit" # يطبع 12