خيارات سطر الأوامر في Node.js

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يتوافر العديد من خيارات سطر الأوامر التي يمكن استعمالها مع Node.js. تُستعمَل هذه الخيارات في تنقيح أخطاء الشيفرة، والتحكم في كيفيَّة تنفيذ الشيفرة، وغيرها من الأمور المفيدة.

يمكن عرض هذا التوثيق في الطرفيَّة عبر استعمال الأمر man node.

البنية العامة

node [options] [V8 options] [script.js | -e "script" | -] [--] [arguments]
node debug [script.js | -e "script" | <host>:<port>] …
node --v8-options

إنَّ تنفيذ node دون أيَّة وسائط يؤدي إلى بدئها مع الوحدة REPL.

لمزيدٍ من المعلومات حول node debug، راجع رجاءً التوثيق «منقح الأخطاء».

الخيارات

-

أضيف في الإصدار v8.0.0.

هو اسمٌ بديلٌ لمجرى الدخل القياسي (stdin)، وهو مماثلٌ لاستعمال - في الأدوات الأخرى لسطر الأوامر. استعمال هذا الخيار يشير إلى أنَّ السكربت سيُقرأ من مجرى الدخل القياسي وستُمرَّر بقية الخيارات إلى ذلك السكربت.

--

أضيف في الإصدار v6.00.0.

يشير هذا الخيار إلى نهاية خيارات node، إذ ستُمرَّر بقيَّة الخيارات التي بعده إلى السكربت. إن لم يُعطَ أيُّ اسمٍ لسكربت، أو لم يُعطَ الأمر eval أو الأمر print قبل هذا الخيار، فسيُستعمَل حينئذٍ الوسيط الذي يلي هذا الخيار اسمًا للسكربت.

‎--abort-on-uncaught-exception

أضيف في الإصدار v0.10.

تتسبَّب مقاطعة العمليَّة بدلًا من الخروج الطبيعي منها في توليد ملف من أجل التحليل التشريحي (post-mortem analysis) باستعمال منقح أخطاء (مثل lldb، و gdb، و mdb).

إن أعطيت هذه الراية، فلا يزال بالإمكان ضبط السلوك لتفادي عدم حصول مقاطعة عبر استعمال التابع process.setUncaughtExceptionCaptureCallback()‎ (وعبر استعمال الوحدة domain التي تستعمله).

‎--enable-fips

أضيف في الإصدار v6.0.0.

يفعِّل هذا الخيار التشفير المتوافق مع FIPS عند بدء التشغيل (هذا يتطلب أن تكون Node.js منشأة مع ‎./configure --openssl-fips).

‎--experimental-modules

أضيف في الإصدار v8.5.0.

يفعِّل هذا الخيار دعم الوحدة ES التجريبي ووحدات التخزين (caching).

‎--experimental-repl-await

أضيف في الإصدار v10.0.0.

يفعِّل هذا الخيار دعم الكلمة المفتاحية await التجريبيَّة ذات المستوى الأعلى في REPL.

‎--experimental-vm-modules

أضيف في الإصدار v9.6.0.

يفعِّل هذا الخيار دعم الوحدة ES التجريبي في الوحدة vm.

‎--experimental-worker

أضيف في الإصدار v10.5.0.

يفعِّل هذا الخيار خيوط العمليَّة العاملة التجريبية باستعمال الوحدة worker_thread.

‎--force-fips

أضيف في الإصدار v6.0.0.

يفرض هذا الخيار تفعيل التشفير المتوافق مع FIPS عند بدء التشغيل (يشبه الخيار ‎--enable-fips تمامًا باستثناء أنَّه لا يمكن تعطيله من السكربت).

‎--icu-data-dir=file

أضيف في الإصدار v0.11.15.

يحدِّد هذا الخيار مسار تحميل بيانات ICU. (استُبدل به الخيار NODE_ICU_DATA.)

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

أضيف في الإصدار v7.6.0.

يفعِّل هذا الخيار مراقبًا (inspector) على host:port وفاصلًا (break) عند بداية سكربت المستخدم. قيمة host:port الافتراضية هي 127.0.0:9229.

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

أضيف في الإصدار v7.6.0.

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

قيمة host الافتراضيَّة هي: 127.0.0.1.

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

أضيف في الإصدار v6.3.0.

يفعِّل هذا الخيار مراقبًا على host:port. قيمة host:port الافتراضيَّة هي: 127.0.0.1:9229.

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

‎--napi-modules

أضيف في الإصدار v7.10.0.

يمثِّل هذا الخيار العمليَّة no-op (عمليَّة فارغة [no operation])، إذ أوجد من أجل التوافقيَّة.

‎--no-deprecation

أضيف في الإصدار v0.8.0.

يخفي هذا الخيار تحذيرات الإهمال.

‎--no-force-async-hooks-checks

أضيف في الإصدار v9.0.0.

يعطِّل هذا الخيار التحققات التي تجرى أثناء التشغيل (runtime) من أجل الوحدة async_hooks. ستبقى هذه التحقيقات فعَّالة ديناميكيًّا عندما تفعَّل الوحدة async_hooks.

‎--no-warnings

أضيف في الإصدار v6.0.0.

إخفاء جميع تحذيرات العمليات (من ضمنها تحذيرات الإهمال).

‎--openssl-config=file

أضيف في الإصدار v6.9.0.

يحدِّد هذا الخيار ملف ضبط openSSL المراد تحميله عند بدء التشغيل. ولهذا الخيار استخدامات أخرى أيضًا منها تفعيل التشفير المتوافق مع FIPS إن أنشئت Node.js مع ‎./configure --openssl-fips.

‎--pending-deprecation

أضيف في الإصدار v8.0.0.

يطلق هذا الخيار تحذيرات قيد الإهمال (pending depreciation).

تحذيرات قيد الإهمال مماثلة عمومًا لتحذيرات إهمال وقت التشغيل باستثناء أنَّ الأولى تُعطَّل افتراضيًّا ولن تُطلَق إلا إذا استعملت الراية ‎--pending-deprecation أو متغير البيئة NODE_PENDING_DEPRECATION=1. تُستعمَل تحذيرات قيد الإهمال لتوفير آلية انتقائيَّة لإطلاق «تحذيرات مبكرة» يمكن أن يستغلها المطورين لإكتشاف الواجهات البرمجيَّة المهملة.

‎--preserve-symlinks

أضيف في الإصدار v6.3.0.

يوجِّه هذا الخيار محمِّل الوحدة (module loader) إلى أن يحفظ الوصلات الرمزيَّة (symbolic links) عند استبيان وتخزين الوحدات.

عندما تُحمِّل Node.js وحدةً من مسار يعدُّ وصلةً رمزيَّة تشير إلى موقع مختلف في القرص، فستتعقب Node.js الوصلة وتستعمل المسار الحقيقي الموجود على القرص للوحدة كمُعرَّف وكمسار جذر لتحديد الوحدات التابعة (dependency modules) الأخرى. في أغلب الحالات، يكون هذا السلوك الافتراضي مقبولًا. على أي حال، عند استعمال توابع الند (peer dependencies) المرتبطة بوصلة رمزيَّة -كما موضح في المثال التالي-، سيرمي السلوك الافتراضي استثناءً إن حاولت الوحدة 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 تأثيرات جانبيَّة؛ على وجه التحديد، من الممكن أن يفشل تحميل الوحدات الصرفة المرتبطة رمزيًّا إن رُبطت هذه الوحدات من أكثر من موقع واحد في شجرة الاعتماديات (dependency tree)، إذ سترى Node.js هذه الوحدات على أنَّها وحدات منفصلة تمامًا وستحاول تحميلها مما يؤدي إلى تحميل نفس الوحدة عدَّة مرات ورمي استثناءٍ نتيجةً لذلك.

لا تُطبَّق الراية ‎--preserve-symlinks على الوحدة الرئيسية التي تسمح بعمل node --preserve-symlinks node_module/.bin/<foo>‎. لتطبيق السلوك نفسه على الوحدة الرئيسية، ارجع إلى الخيار ‎--preserve-symlinks-main.

‎--preserve-symlinks-main

أضيف في الإصدار v10.2.0.

يأمر هذا الخيار محمِّل الوحدة (module loader) بحفظ الوصلات الرمزية (symbolic links) عند استبيان وتخزين الوحدة الرئيسية (عبر require.main).

تتقيد الوحدة الرئيسيَّة عند استعمال هذا الخيار بتطبيق نفس السلوك الذي يطبَّق عند استعمال الخيار ‎--preserve-symlinks على جميع الاستيرادات الأخرى. فصلت هاتان الرايتان (الراية ‎--preserve-symlinks والراية ‎--preserve-symlinks-main) من أجل التوافقيَّة الرجوعيَّة (backward compatibility) مع إصدارات Node.js السابقة.

انتبه إلى أنَّ استعمال الخيار ‎--preserve-symlinks-main لا يعني استعمال الخيار ‎--preserve-symlinks ضمنيًا، إذ من المفترض أنَّ الخيار ‎--preserve-symlinks-main سيُستخدَم بالإضافة إلى الخيار ‎--preserve-symlinks عندما لا يُرغَب بتتبع الوصلة الرمزيَّ قبل استبيان المسارات النسبيَّة (relative paths).

انظر أيضًا الخيار ‎--preserve-symlinks في الأعلى للمزيد من المعلومات.

‎--prof

أضيف في الإصدار v2.0.0.

يولِّد هذا الخيار مخرجات المحلِّل V8.

‎--prof-process

أضيف في الإصدار v5.2.0.

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

‎--redirect-warnings=file

أضيف في الإصدار v8.0.0.

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

‎--throw-deprecation

أضيف في الإصدار v0.11.14.

يرمي هذا الخيار خطأً إن كانت الواجهة البرمجيَّة المستعملة مهملة.

‎--title=title

أضيف في الإصدار v10.7.0.

يضبط هذا الخيار الخاصِّيَّة process.title عند بدء التشغيل.

‎--tls-cipher-list=list

أضيف في الإصدار v4.0.0.

يحدَّد هذا الخيار بديلًا افتراضيًّا لقائمة التشفير TLS، وهذا يتطلب أن تكون Node.js قد بُنيَت مع دعم افتراضي للوحدة crypto.

‎--trace-deprecation

أضيف في الإصدار v0.8.0.

يطبع هذا الخيار تعقبات المكدِّس (stack traces) من أجل الواجهات البرمجيَّة المهملة.

‎--trace-event-categories

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

يحدِّد هذا الخيار قائمةً من التصنفيات المفصولة بفاصلة والتي يراد تعقبها عند يُفعَّل تعقُّب الحدث 'trace' باستعمال الخيار ‎--trace-events-enabled.

‎--trace-event-file-pattern

أضيف في الإصدار v9.8.0.

يمثِّل هذا الخيار قالبًا من سلسلة نصية تحدِّد مسار ملف بيانات الحدث 'trace'، إذ يدعم ‎${rotation}‎ و ‎${pid}‎.

‎--trace-events-enabled

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

يفعِّل هذا الخيار مجموعة الحدث 'trace' لتعقب المعلومات.

‎--trace-sync-io

أضيف في الإصدار v2.1.0.

يطبع هذا الخيار تعقبات المكدِّس متى ما اكتُشفَت مداخل ومخارج متزامنة بعد الدورة الأولى لحلقة الأحداث (event loop).

‎--trace-warnings

أضيف في الإصدار v6.0.0.

يطبع هذا الخيار تعقبات المكدِّس (stack traces) الخاصَّة بتحذيرات العمليات (من ضمنها تحذيرات الإهمال أيضًا).

‎--track-heap-objects

أضيف في الإصدار v2.4.0.

يتعقَّب هذا الخيار الأماكن المحجوزة في الكومة (الكائن heap) من أجل لقطات (snapshots) الكومة.

--use-bundled-ca و ‎--use-openssl-ca

أُضيفا في الإصدار v6.11.0.

يستعمل هذان الخياران متجر حزم شهادات Mozilla CA كما يوفِّره إصدار Node.js الحالي أو متجر OpenSSL CA الافتراضي. يكون المتجر الافتراضي اختياريًّا عند وقت الإنشاء (build-time).

يعدُّ متجر حزم CA، كما توفره Node.js، صورةً عن متجر Mozilla CA الذي يُحدَّد عند إطلاق الإصدار. هذا ينطبق على جميع المنصات المدعومة.

يسمح استعمال متجر OpenSSL بإجراء تعديلات خارجيَّة للمتجر. في أغلب توزيعات لينكس و BSD، يدار هذا المتجر من طرف فنِّيُّو التوزيعة نفسها ومدراء الأنظمة. يعتمد موقع متجر OpenSSL CA على ضبط مكتبة OpenSSL ويمكن تغييره أثناء التشغيل عبر استعمال متغيرات البيئة.

انظر أيضًا متغيري البيئة SSL_CERT_DIR و SSL_CERT_FILE.

‎--v8-options

أضيف في الإصدار v0.1.3.

يطبع هذا الخيار خيارات سطر أوامر المراقب V8 المتوافرة.

تسمح خيارات المراقب V8 بفصل الكلمات عبر الشرطة العادية (-) والشرطة السفلية (_). على سبيل المثال، يكون الخيار ‎--stack-trace-limit مكافئًا للخيار  ‎--stack_trace_limit.

‎--v8-pool-size=num

أضيف في الإصدار v5.10.0.

يضبط هذا الخيار حجم مجمع خيط V8 والذي سيستخدم لحجز العمليات التي تعمل في الخلفيَّة.

إن ضُبِطَ الحجم إلى القيمة 0، فسيَختار V8 حينئذٍ حجمًا ملائمًا لمجمِّع الخيط (thread pool) استنادًا إلى عدد المعالجات المتصلة.

إن كانت القيمة المعطاة أكبر من قيمة V8 القصوى، فستُتخار القيمة القصوى حينها مباشرةً.

‎--zero-fill-buffers

أضيف في الإصدار v6.0.0.

يُستعمَل هذا الخيار لكتابة القيمة 0 على كامل الجزء المحجوز حديثًا للنسخ Buffer والنسخ SlowBuffer تلقائيًّا.

‎-c أو ‎--check

سجل التغييرات
الإصدار التغييرات
v10.0.0 أصبح الخيار ‎--require مدعومًا الآن عند التحقُّق من ملفٍ ما.
V5.0.0 - v4.2.0 أضيف هذا الخيار.

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

‎-e أو ‎--eval "script"‎

سجل التغييرات
الإصدار التغييرات
v5.11.0 أصبحت المكتبات المضمَّنة متاحةً الآن بوصفها متغيرات معرفة مسبقًا.
v0.5.2 أضيف هذا الخيار.

تعامل الوسائط اللاحقة عند استعمال هذا الخيار على أنَّها شيفرة JavaScript. الوحدات المُعرَّفة مسبقًا في REPL يمكن استعمالها في script أيضًا.

في ويندوز، لن يتعرَّف موجه الأوامر cmd.exe على علامة الاقتباس الفرديَّة عند استعمالها بشكل صحيح لأنَّه لا يتعرَّف إلا على علامة الاقتباس الزوجية من أجل الاقتباس. أمَّا في الصدفة Powershell أو في Git، يمكن استعمال علامة الاقتباس الفرديَّة والزوجيَّة كلاهما.

‎-h أو ‎--help

أضيف في الإصدار v0.1.3.

يطبع هذا الخيار خيارات سطر أوامر Node.js المتاحة. تكون المخرجات المطبوعة باستعمال هذا الخيار أقل تفصيلًا مما يحويه هذا التوثيق.

‎-i أو ‎--interactive

أضيف في الإصدار v0.7.7.

يفتح هذا الخيار REPL حتى لو لم يكن مجرى الدخل القياسي يبدو وكأنَّه طرفيَّةً.

‎-p أو ‎--print "script"

سجل التغييرات
الإصدار التغييرات
v5.11.0 أصبحت المكتبات المضمَّنة متاحةً الآن بوصفها متغيرات معرفة مسبقًا.
v0.5.2 أضيف هذا الخيار.

هذا الخيار مماثل تمامًا للخيار ‎-e باستثناء أنَّه يطبع النتيجة.

‎-r أو ‎--require module

أضيف في الإصدار v1.6.0.

يحمِّل هذا الخيار الوحدة المحدَّدة مسبقًا عند بدء التشغيل.

يتقيَّد هذا الخيار بقواعد تحليل الوحدة (module resolution rules) للدالة require()‎. يمكن أن يكون الوسيط module إمَّا مسارًا لملف أو اسمًا لوحدة في Node.js.

‎-v أو ‎--version

أضيف في الإصدار v0.1.3.

يطبع هذا الخيار إصدار Node.js الحالي.

متغيرات البيئة

NODE_DEBUG=module[,…]‎

أضيف في الإصدار v0.3.0.

عندما يُضبَط هذا المتغير إلى القيمة 1، لن تُستعمَل الألوان بعدئذٍ في REPL.

NODE_EXTRA_CA_CERTS=file

أضيف في الإصدار v7.3.0.

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

انتبه إلى أنَّه لا تُستعمَل الشهادات المعروفة ولا الشهادات الإضافيَّة عندما تُضبَط خاصِّيَّة الخيار ca إلى عميل أو خادم TLS أو HTTPS.

NODE_ICU_DATA=file

أضيف في الإصدار v0.11.15.

يحدِّد هذا المتغير مسار بيانات ICU (كائن Intl). ستتوسع البيانات المرتبطة عند تفسيرها (compiled) مع دعم small-icu.

NODE_NO_WARNINGS=1

أضيف في الإصدار v6.11.0.

عندما يُضبَط هذا المتغير إلى القيمة 1، لن تظهر تحذيرات العمليات بعدئذٍ.

NODE_OPTIONS=‎options…‎‎

أضيف في الإصدار v8.0.0.

يحوي هذا المتغير قائمة من خيارات سطر الأوامر المفصولة عن بعضها بفراغ. تعامل الخيارات options‎…‎ المعطاة وكأنَّها كتبت في سطر الأوامر مباشرةً قبل أن تُكتَب في سطر أوامر حقيقي. ستخرج Node.js مع خطأ إن استُعمِل خيار غير مسموح باستعماله في البيئة، مثل الخيار ‎-p أو ملف سكربت.

خيارات Node.js المسموح باستعمالها في البيئة هي:

  • ‎--enable-fips
  • ‎--experimental-modules
  • ‎--experimental-repl-await
  • ‎--experimental-vm-modules
  • ‎--experimental-worker
  • ‎--force-fips
  • ‎--icu-data-dir
  • ‎--inspect
  • ‎--inspect-brk
  • ‎--inspect-port
  • ‎--loader
  • ‎--napi-modules
  • ‎--no-deprecation
  • ‎--no-force-async-hooks-checks
  • ‎--no-warnings
  • ‎--openssl-config
  • ‎--pending-deprecation
  • ‎--redirect-warnings
  • ‎--require أو ‎-r
  • ‎--throw-deprecation
  • ‎--title
  • ‎--tls-cipher-list
  • ‎--trace-deprecation
  • ‎--trace-event-categories
  • ‎--trace-event-file-pattern
  • ‎--trace-events-enabled
  • ‎--trace-sync-io
  • ‎--trace-warnings
  • ‎--track-heap-objects
  • ‎--use-bundled-ca
  • ‎--use-openssl-ca
  • ‎--v8-pool-size
  • ‎--zero-fill-buffers

أما خيارات V8 المسموح باستعمالها في البيئة فهي:

  • ‎--abort-on-uncaught-exception
  • ‎--max-old-space-size
  • ‎--perf-basic-prof
  • ‎--perf-prof
  • ‎--stack-trace-limit

NODE_PATH=path[:…]‎

أضيف في الإصدار v0.1.32.

يحدِّد هذا المتغير قائمةً من المجلدات المفصولة عن بعضها بالمحرف ':' والتي ستضاف إلى مسار المجلدات التي يبحث ضمنها عن الوحدة.

في ويندوز، يكون المحرف الفاصل بين أسماء المجلدات هو المحرف ';' عوضًا عن المحرف ':'.

NODE_PENDING_DEPRECATION=1

أضيف في الإصدار v8.0.0.

عندما يُضبَط هذا المتغير إلى القيمة 1، ستُطلَق تحذيرات قيد الإهمال (pending deprecation warnings).

تحذيرات قيد الإهمال مماثلة عمومًا لتحذيرات إهمال وقت التشغيل باستثناء أنَّ الأولى تُعطَّل افتراضيًّا ولن تُطلَق إلا إذا استُعملَت الراية ‎--pending-deprecation أو متغير البيئة NODE_PENDING_DEPRECATION=1. تُستعمَل تحذيرات قيد الإهمال لتوفير آلية انتقائيَّة لإطلاق «تحذيرات مبكرة» يمكن أن يستغلها المطورين لإكتشاف الواجهات البرمجيَّة المهملة.

NODE_PRESERVE_SYMLINKS=1

أضيف في الإصدار v7.1.0.

عندما يُضبَط هذا المتغير إلى القيمة 1، سيُوجه مُحمِّل الوحدة (module loader) إلى حفظ الوصلات الرمزيَّة (symbolic links) عند استبيان وتخزين الوحدات.

NODE_REDIRECT_WARNINGS=file

أضيف في الإصدار v8.0.0.

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

هذا المتغير مكافئ لاستعمال الراية ‎--redirect-warnings=file في سطر الأوامر.

NODE_REPL_HISTORY=file

أضيف في الإصدار v3.0.0.

يحدِّد هذا المتغير مسارًا للملف المراد استعماله لتخزين تأريخ REPL. المسار الافتراضي هو ‎~/.node_repl_history وسيُستبدَل به المسار المعطى لهذا المتغير.

انتبه إلى أنَّ تعيين قيمة هذا المتغير إلى سلسلة نصية فارغة (مثل '' أو ' ') يُعطِّل تأريخ REPL.

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، فهذا سيتسبَّب في جعلها تثق من نفس الشهادات CAs التي تثق منها Node.js.

SSL_CERT_FILE=file

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

إن فُعِّل الخيار ‎--use-openssl-ca، فسيُستبدَل هذا المتغير ويُعيَّن الملف OpenSSL الذي يحوي الشهادات الموثوقة.

كن حذرًا إلى أنَّه إن لم تُضبَط بيئة العمليَّة الابن بشكل واضح، فسترث أيَّة عمليَّة ابن متغير البيئة هذا؛ وإن كانت تلك العمليَّة تستعمل OpenSSl، فهذا سيتسبَّب في الوثوق من نفس الشهادات CAs التي تثق منها Node.js.

UV_THREADPOOL_SIZE=size

يضبط هذا المتغير عدد الخيوط المستعملة في مجمَّع خيط libuv إلى الخيوط size.

تستعمل Node.js واجهات النظام البرمجيَّة غير المتزامنة متى ما أتيح ذلك لها؛ أضف إلى ذلك أنه عندما لا تخرج تلك الواجهات، يُستعمَل مجمع خيط libuv لإنشاء واجهات Node.js برمجيَّة غير متزامنة اعتمادًا على واجهات النظام البرمجيَّة المتزامنة. واجهات Node.js البرمجية التي تستعمل مجمِّع الخيط (threadpool) هي:

  • جميع واجهات fs البرمجيَّة، باستثناء واجهات مراقب الملف البرمجية وتلك التي تُعرَف بأنَّها متزامنة، و
  • crypto.pbkdf2()‎، و
  • crypto.randomBytes()‎، إلا إذا استُعملَت دون دالة رد نداء، و
  • crypto.randomFill()‎، و
  • dns.lookup()‎، و
  • جميع واجهات zlib البرمجية باستثناء تلك التي تُعرَف بأنَّها متزامنة.

لمَّا كان لمجمع خيط libuv حجمًا ثابتًا، فهذا يعني أنَّه إن استغرقت أيٌّ من تلك الواجهات البرمجيَّة فترة زمنيَّة طويلة لأي سبب كان، فستعاني الواجهات البرمجيَّة الأخرى التي تعمل في مجمع خيط libuv انخفاضًا في الأداء. هنالك حل وحيد لتقليل آثار هذه المشكلة هو زيادة حجم مجمَّع خيط libuv عبر ضبط قيمة متغير البيئة UV_THREADPOOL_SIZE إلى قيمةٍ أكبر من 4 (وهي القيمة الافتراضية الحالية لهذا المتغير). لمزيدٍ من المعلومات، راجع توثيق threadpool libuv.

مصادر