.\" .\" This file was generated automatically by the @node-core/doc-kit tool. .\" Please do not edit this file manually. Make any updates to cli.md .\" and regenerate the file afterward. .\" .\" To regenerate this file, run `make doc/node.1`. .\" .\"====================================================================== .Dd $Mdocdate$ .Dt NODE 1 . .Sh "نام (NAME)" .Nm node .Nd محیط اجرای جاوااسکریپت سمت سرور . .Sh "خلاصه دستور (SYNOPSIS)" .Nm node .Op Ar گزینه‌ها .Op Ar گزینه‌های v8 .Op Ar <نقطه-ورود-برنامه> | Fl e Ar رشته | Fl - .Op Ar آرگومان‌ها ... . .Nm node .Cm inspect, .Op Ar <نقطه-ورود-برنامه> | Fl e Ar رشته | Ar <میزبان>:<درگاه> .Ar ... . .Nm node .Op Fl -v8-options . .Sh "توضیحات (DESCRIPTION)" نودجی‌اس (Node.js) مجموعه‌ای از کتابخانه‌ها برای جاوااسکریپت است که امکان استفاده از آن در خارج از مرورگر را فراهم می‌کند. تمرکز اصلی آن بر ساخت کارسازها و کارخواه‌های شبکه‌ای ساده با پیاده‌سازی آسان است. .Pp دستور .Nm را بدون آرگومان اجرا کنید تا یک REPL آغاز شود. . .Sh "گزینه‌ها (OPTIONS)" .Bl -tag -width 6n .It Fl نام مستعار برای stdin. همانند استفاده از \fB-\fR در سایر ابزارهای خط فرمان، به این معنی است که اسکریپت از stdin خوانده می‌شود و بقیه گزینه‌ها به آن اسکریپت ارسال می‌گردند. . .It Fl - پایان گزینه‌های node را مشخص می‌کند. باقی آرگومان‌ها به اسکریپت ارسال می‌شوند. چنانچه پیش از این، نام فایل اسکریپت یا اسکریپت eval/print ارائه نشده باشد، آرگومان بعدی به عنوان نام فایل اسکریپت در نظر گرفته می‌شود. . .It Fl -abort-on-uncaught-exception سقط (Abort) کردن به جای خروج عادی باعث ایجاد یک فایل core برای تحلیل پس از مرگ برنامه با استفاده از یک اشکال‌زدا (مانند \fBlldb\fR، \fBgdb\fR و \fBmdb\fR) می‌شود. در صورت ارسال این فلگ، همچنان می‌توان با استفاده از \fBprocess.setUncaughtExceptionCaptureCallback()\fR (و از طریق کاربرد ماژول \fBnode:domain\fR که از آن بهره می‌برد) رفتار برنامه را طوری تنظیم کرد که سقط نشود. . .It Fl -allow-addons هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به استفاده از افزونه‌های بومی (native addons) نخواهد بود. تلاش برای انجام این کار خطای \fBERR_DLOPEN_DISABLED\fR را ایجاد می‌کند، مگر آنکه کاربر هنگام شروع Node.js صراحتاً فلگ \fB--allow-addons\fR را مشخص کرده باشد. مثال: .Bd -literal // تلاش برای require کردن یک افزونه بومی require('nodejs-addon-example'); .Ed .Bd -literal $ node --permission --allow-fs-read=* index.js node:internal/modules/cjs/loader:1319 return process.dlopen(module, path.toNamespacedPath(filename)); ^ Error: Cannot load native addon because loading addons is disabled. at Module._extensions..node (node:internal/modules/cjs/loader:1319:18) at Module.load (node:internal/modules/cjs/loader:1091:32) at Module._load (node:internal/modules/cjs/loader:938:12) at Module.require (node:internal/modules/cjs/loader:1115:19) at require (node:internal/modules/helpers:130:18) at Object. (/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' } .Ed . .It Fl -allow-child-process هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به ایجاد هیچ فرایند child نخواهد بود. تلاش برای انجام این کار خطای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند، مگر آنکه کاربر هنگام شروع Node.js صراحتاً فلگ \fB--allow-child-process\fR را مشخص کرده باشد. مثال: .Bd -literal const childProcess = require('node:child_process'); // تلاش برای دور زدن مجوز childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("/new-file", "example")']); .Ed .Bd -literal $ 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 node:internal/main/run_main_module:17:47 { code: 'ERR_ACCESS_DENIED', permission: 'ChildProcess' } .Ed ای‌پی‌آی \fBchild_process.fork()\fR آرگومان‌های اجرایی را از فرایند والد به ارث می‌برد. این بدان معناست که اگر Node.js با فعال بودن Permission Model راه‌اندازی شود و فلگ \fB--allow-child-process\fR تعیین گردد، هر فرایند child ایجادشده با استفاده از \fBchild_process.fork()\fR به‌طور خودکار تمامی فلگ‌های مرتبط Permission Model را دریافت خواهد کرد. این رفتار در مورد \fBchild_process.spawn()\fR نیز صدق می‌کند، اما در آن حالت، فلگ‌ها به جای آرگومان‌های مستقیم فرایند، از طریق متغیر محیطی \fBNODE_OPTIONS\fR انتشار می‌یابند. . .It Fl -allow-ffi هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به استفاده از ای‌پی‌آی‌های FFI نخواهد بود. تلاش برای استفاده از ای‌پی‌آی‌های FFI یک استثنای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند مگر آنکه کاربر هنگام شروع Node.js صراحتاً فلگ \fB--allow-ffi\fR را مشخص کرده باشد. ماژول \fBnode:ffi\fR همچنین نیازمند فلگ \fB--experimental-ffi\fR است و تنها در بیلدهایی که از FFI پشتیبانی می‌کنند در دسترس است. مثال: .Bd -literal const { DynamicLibrary, suffix } = require('node:ffi'); const lib = new DynamicLibrary(`./mylib.${suffix}`); .Ed .Bd -literal $ node --permission --experimental-ffi index.js Error: Access to this API has been restricted. Use --allow-ffi to manage permissions. at node:internal/main/run_main_module:17:47 { code: 'ERR_ACCESS_DENIED', permission: 'FFI' } .Ed . .It Fl -allow-fs-read این فلگ مجوزهای خواندن از سیستم فایل (filesystem) را با استفاده از مدل مجوزها (Permission Model) پیکربندی می‌کند. آرگومان‌های معتبر برای فلگ \fB--allow-fs-read\fR عبارتند از: .Bl -bullet .It \fB*\fR - برای مجاز کردن تمامی عملیات‌های \fBFileSystemRead\fR. .It می‌توان چندین مسیر را با استفاده از چند فلگ \fB--allow-fs-read\fR مجاز کرد. مثال: \fB--allow-fs-read=/folder1/ --allow-fs-read=/folder2/\fR .El مثال‌ها را می‌توان در مستندات مجوزهای فایل‌سیستم یافت. ماژول مقداردهی اولیه و ماژول‌های سفارشی \fB--require\fR دارای مجوز خواندن ضمنی هستند. .Bd -literal $ node --permission -r custom-require.js -r custom-require-2.js index.js .Ed .Bl -bullet .It فایل‌های \fBcustom-require.js\fR، \fBcustom-require-2.js\fR و \fBindex.js\fR به‌طور پیش‌فرض در فهرست خواندن مجاز قرار خواهند گرفت. .El .Bd -literal process.permission.has('fs.read', 'index.js'); // true process.permission.has('fs.read', 'custom-require.js'); // true process.permission.has('fs.read', 'custom-require-2.js'); // true .Ed . .It Fl -allow-fs-write این فلگ مجوزهای نوشتن در سیستم فایل (filesystem) را با استفاده از مدل مجوزها (Permission Model) پیکربندی می‌کند. آرگومان‌های معتبر برای فلگ \fB--allow-fs-write\fR عبارتند از: .Bl -bullet .It \fB*\fR - برای مجاز کردن تمامی عملیات‌های \fBFileSystemWrite\fR. .It می‌توان چندین مسیر را با استفاده از چند فلگ \fB--allow-fs-write\fR مجاز کرد. مثال: \fB--allow-fs-write=/folder1/ --allow-fs-write=/folder2/\fR .El مسیرهای جداشده با کاما (\fB,\fR) دیگر مجاز نیستند. در صورت ارسال یک فلگ همراه با کاما، یک هشدار نمایش داده خواهد شد. مثال‌ها را می‌توان در مستندات مجوزهای فایل‌سیستم یافت. . .It Fl -allow-inspector هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به اتصال از طریق پروتکل بازرس (inspector) نخواهد بود. تلاش برای انجام این کار خطای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند، مگر آنکه کاربر هنگام شروع Node.js صراحتاً فلگ \fB--allow-inspector\fR را ارسال کند. مثال: .Bd -literal const { Session } = require('node:inspector/promises'); const session = new Session(); session.connect(); .Ed .Bd -literal $ node --permission index.js Error: connect ERR_ACCESS_DENIED Access to this API has been restricted. Use --allow-inspector to manage permissions. code: 'ERR_ACCESS_DENIED', } .Ed . .It Fl -allow-net هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض به شبکه دسترسی نخواهد داشت. تلاش برای انجام این کار خطای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند، مگر آنکه کاربر هنگام شروع Node.js صراحتاً فلگ \fB--allow-net\fR را ارسال کند. مثال: .Bd -literal const http = require('node:http'); // تلاش برای دور زدن مجوز const req = http.get('http://example.com', () => {}); req.on('error', (err) => { console.log('err', err); }); .Ed .Bd -literal $ node --permission index.js Error: connect ERR_ACCESS_DENIED Access to this API has been restricted. Use --allow-net to manage permissions. code: 'ERR_ACCESS_DENIED', } .Ed . .It Fl -allow-openssl-store هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به استفاده از لودرهای OpenSSL STORE نخواهد بود، برای نمونه جهت بارگذاری یک کلید خصوصی از یک \fB\fR ارسال‌شده به \fBcrypto.createPrivateKey()\fR. تلاش برای انجام این کار یک خطای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند مگر آنکه کاربر صراحتاً فلگ \fB--allow-openssl-store\fR را ارسال کند. این مجوز را می‌توان در زمان اجرا با استفاده از \fBpermission.drop()\fR ساقط کرد. این فلگ اختیارات گسترده‌ای به لودرهای پیکربندی‌شدهٔ OpenSSL STORE اعطا می‌کند. یک لودر ممکن است به فایل‌ها، دستگاه‌ها، توکن‌ها یا شبکه دسترسی داشته باشد. دسترسی‌های انجام‌شده توسط لودر توسط محدوده‌های مجوز \fBfs.read\fR، \fBfs.write\fR یا \fBnet\fR مقید نمی‌شوند. . .It Fl -allow-wasi هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به ساخت هیچ نمونه‌ای از WASI نخواهد بود. به دلایل امنیتی، این فراخوانی خطای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند مگر آنکه کاربر صراحتاً فلگ \fB--allow-wasi\fR را در فرایند اصلی Node.js ارسال کند. مثال: .Bd -literal const { WASI } = require('node:wasi'); // تلاش برای دور زدن مجوز new WASI({ version: 'preview1', // تلاش برای مانت کردن کل فایل‌سیستم preopens: { '/': '/', }, }); .Ed .Bd -literal $ 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', } .Ed . .It Fl -allow-worker هنگام استفاده از مدل مجوزها (Permission Model)، فرایند به‌طور پیش‌فرض قادر به ایجاد هیچ ریسمان کارگری (worker thread) نخواهد بود. به دلایل امنیتی، این فراخوانی خطای \fBERR_ACCESS_DENIED\fR ایجاد می‌کند مگر آنکه کاربر صراحتاً فلگ \fB--allow-worker\fR را در فرایند اصلی Node.js ارسال کند. مثال: .Bd -literal const { Worker } = require('node:worker_threads'); // تلاش برای دور زدن مجوز new Worker(__filename); .Ed .Bd -literal $ 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' } .Ed . .It Fl -build-sea Ns = Ns Ar config یک برنامه اجرایی تک‌فایلی (single executable application) را از روی یک فایل پیکربندی JSON تولید می‌کند. آرگومان باید مسیری به فایل پیکربندی باشد. اگر مسیر مطلق نباشد، نسبت به دایرکتوری کاری فعلی حل می‌شود. برای فیلدهای پیکربندی، نکات میان‌پلتفرمی و ای‌پی‌آی‌های دارایی‌ها، مستندات single executable application را بررسی کنید. . .It Fl -build-snapshot هنگام خروج فرایند، یک snapshot blob ایجاد کرده و آن را بر روی دیسک می‌نویسد که بعداً می‌تواند با \fB--snapshot-blob\fR بارگذاری شود. هنگام ساخت اسنپ‌شات، چنانچه \fB--snapshot-blob\fR مشخص نشده باشد، بلاب تولیدشده به‌طور پیش‌فرض در فایل \fBsnapshot.blob\fR در دایرکتوری کاری جاری نوشته خواهد شد. در غیر این صورت در مسیر مشخص‌شده توسط \fB--snapshot-blob\fR ذخیره می‌شود. .Bd -literal $ echo "globalThis.foo = 'I am from the snapshot'" > snapshot.js # Run snapshot.js to initialize the application and snapshot the # state of it into snapshot.blob. $ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js $ echo "console.log(globalThis.foo)" > index.js # Load the generated snapshot and start the application from index.js. $ node --snapshot-blob snapshot.blob index.js I am from the snapshot .Ed ای‌پی‌آی \fBv8.startupSnapshot\fR می‌تواند برای تعیین نقطه ورود در زمان ساخت اسنپ‌شات استفاده شود، بدین ترتیب از نیاز به یک اسکریپت ورودی اضافی در زمان بازیابی (deserialization) جلوگیری می‌کند: .Bd -literal $ 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 .Ed برای اطلاعات بیشتر، مستندات ای‌پی‌آی \fBv8.startupSnapshot\fR را بررسی کنید. اسنپ‌شات در حال حاضر فقط از بارگذاری یک نقطه ورود منفرد در طول فرایند ساخت اسنپ‌شات پشتیبانی می‌کند که می‌تواند ماژول‌های توکار را بارگذاری کند، اما ماژول‌های اضافی در فضای کاربری را خیر. کاربران می‌توانند برنامه‌های خود را با باندلر دلخواه پیش از ساخت اسنپ‌شات در یک اسکریپت واحد بسته‌بندی کنند. از آنجا که اطمینان از قابلیت سریال‌سازی همه ماژول‌های توکار که با گذشت زمان افزایش می‌یابند دشوار است، تنها زیرمجموعه‌ای از ماژول‌های توکار به خوبی آزمایش شده‌اند تا در طول فرایند ساخت اسنپ‌شات قابل سریال‌سازی باشند. مجموعه آزمون هسته Node.js بررسی می‌کند که چند برنامه نسبتاً پیچیده بتوانند اسنپ‌شات شوند. فهرست ماژول‌های توکاری که در اسنپ‌شات توکار Node.js گنجانده شده‌اند، پشتیبانی‌شده تلقی می‌شوند. هنگامی که سازنده اسنپ‌شات با ماژول توکاری روبرو شود که قابل سریال‌سازی نیست، ممکن است فرایند ساخت اسنپ‌شات دچار خرابی شود. در این صورت، یک راه‌حل معمول به تعویق انداختن بارگذاری آن ماژول تا زمان اجرا با استفاده از \fBv8.startupSnapshot.setDeserializeMainFunction()\fR یا \fBv8.startupSnapshot.addDeserializeCallback()\fR است. چنانچه نیاز به سریال‌سازی برای یک ماژول اضافی در طول فرایند ساخت اسنپ‌شات دارید، لطفاً یک درخواست در ردیاب مشکلات Node.js ثبت کنید. . .It Fl -build-snapshot-config مسیر یک فایل پیکربندی JSON را مشخص می‌کند که رفتار ساخت اسنپ‌شات را تنظیم می‌نماید. گزینه‌های زیر در حال حاضر پشتیبانی می‌شوند: .Bl -bullet .It \fBbuilder\fR \fB\fR الزامی. نام اسکریپتی را تعیین می‌کند که پیش از ساخت اسنپ‌شات اجرا می‌شود، درست مانند اینکه \fB--build-snapshot\fR همراه با \fBbuilder\fR به عنوان نام اسکریپت اصلی ارسال شده باشد. .It \fBwithoutCodeCache\fR \fB\fR اختیاری. گنجاندن کش کد زمان صرف‌شده برای کامپایل توابع گنجانده‌شده در اسنپ‌شات را کاهش می‌دهد، ولی در عین حال موجب بزرگتر شدن حجم اسنپ‌شات و احتمالاً آسیب به قابلیت جابجایی (portability) اسنپ‌شات می‌شود. .El هنگام استفاده از این فلگ، فایل‌های اسکریپت اضافی ارائه‌شده در خط فرمان اجرا نخواهند شد و در عوض به عنوان آرگومان‌های معمولی خط فرمان تفسیر می‌شوند. . .It Fl c , Fl -check بررسی نحو (Syntax check) اسکریپت بدون اجرای آن. . .It Fl -completion-bash چاپ اسکریپت تکمیل خودکار قابل source برای bash در Node.js. .Bd -literal node --completion-bash > node_bash_completion source node_bash_completion .Ed . .It Fl C Ar condition , Fl -conditions Ns = Ns Ar condition شرایط سفارشی برای حل اکسپورت‌های مشروط (conditional exports) را فراهم می‌کند. هر تعداد نام شرط رشته‌ای سفارشی مجاز است. شرایط پیش‌فرض Node.js یعنی \fB"node"\fR، \fB"default"\fR، \fB"import"\fR و \fB"require"\fR همیشه طبق تعریف اعمال خواهند شد. به عنوان مثال، برای اجرای یک ماژول با تفکیک‌های "development": .Bd -literal node -C development app.js .Ed . .It Fl -cpu-prof پروفایلر CPU مربوط به V8 را هنگام راه‌اندازی آغاز کرده و پیش از خروج، پروفایل CPU را روی دیسک می‌نویسد. اگر \fB--cpu-prof-dir\fR مشخص نشده باشد، پروفایل تولیدشده در دایرکتوری کاری جاری قرار می‌گیرد. اگر \fB--cpu-prof-name\fR مشخص نشده باشد، پروفایل تولیدشده با نام \fBCPU.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.cpuprofile\fR نام‌گذاری می‌شود. .Bd -literal $ node --cpu-prof index.js $ ls *.cpuprofile CPU.20190409.202950.15293.0.0.cpuprofile .Ed اگر \fB--cpu-prof-name\fR مشخص شده باشد، مقدار ارائه‌شده به عنوان یک الگو برای نام فایل استفاده می‌شود. جانگهدار زیر پشتیبانی می‌شود و در زمان اجرا جایگزین خواهد شد: .Bl -bullet .It \fB${pid}\fR — شناسه فرایند جاری (Process ID) .El .Bd -literal $ node --cpu-prof --cpu-prof-name 'CPU.${pid}.cpuprofile' index.js $ ls *.cpuprofile CPU.15293.cpuprofile .Ed . .It Fl -cpu-prof-dir دایرکتوری محل قرارگیری پروفایل‌های CPU تولیدشده توسط \fB--cpu-prof\fR را مشخص می‌کند. مقدار پیش‌فرض توسط گزینه خط فرمان \fB--diagnostic-dir\fR کنترل می‌شود. . .It Fl -cpu-prof-interval فاصله زمانی نمونه‌برداری را بر حسب میکروثانیه برای پروفایل‌های CPU تولیدشده توسط \fB--cpu-prof\fR مشخص می‌کند. مقدار پیش‌فرض ۱۰۰۰ میکروثانیه است. . .It Fl -cpu-prof-name نام فایل پروفایل CPU تولیدشده توسط \fB--cpu-prof\fR را مشخص می‌کند. . .It Fl -diagnostic-dir Ns = Ns Ar directory Set the directory to which all diagnostic output files are written. Defaults to current working directory. Affects the default output directory of: .Bl -bullet .It \fB--cpu-prof-dir\fR .It \fB--heap-prof-dir\fR .It \fB--redirect-warnings\fR .El . .It Fl -disable-proto Ns = Ns Ar mode ویژگی \fBObject.prototype.__proto__\fR را غیرفعال می‌کند. اگر \fBmode\fR برابر با \fBdelete\fR باشد، ویژگی به‌طور کامل حذف می‌شود. اگر \fBmode\fR برابر با \fBthrow\fR باشد، دسترسی به این ویژگی استثنایی با کد \fBERR_PROTO_ACCESS\fR ایجاد می‌کند. . .It Fl -disable-sigusr1 امکان آغاز یک نشست اشکال‌زدایی با ارسال سیگنال \fBSIGUSR1\fR به فرایند را غیرفعال می‌کند. . .It Fl -disable-warning Ns = Ns Ar code-or-type هشدارهای خاص فرایند را بر اساس \fBcode\fR یا \fBtype\fR غیرفعال می‌کند. هشدارهای ارسال‌شده از \fBprocess.emitWarning()\fR ممکن است حاوی یک \fBcode\fR و یک \fBtype\fR باشند. این گزینه هشدارهایی را که دارای \fBcode\fR یا \fBtype\fR منطبق باشند منتشر نمی‌کند. فهرست هشدارهای منسوخ‌شدگی. انواع هشدارهای هسته Node.js عبارتند از: \fBDeprecationWarning\fR و \fBExperimentalWarning\fR برای مثال، اسکریپت زیر هنگام اجرا با \fBnode --disable-warning=DEP0025\fR هشدار DEP0025 \fBrequire('node:sys')\fR را صادر نخواهد کرد: .Bd -literal import sys from 'node:sys'; .Ed .Bd -literal const sys = require('node:sys'); .Ed برای مثال، اسکریپت زیر هشدار DEP0025 \fBrequire('node:sys')\fR را صادر می‌کند، اما هیچ‌کدام از هشدارهای آزمایشی (مانند ExperimentalWarning: \fBvm.measureMemory\fR is an experimental feature in <=v21) را هنگام اجرا با \fBnode --disable-warning=ExperimentalWarning\fR صادر نخواهد کرد: .Bd -literal import sys from 'node:sys'; import vm from 'node:vm'; vm.measureMemory(); .Ed .Bd -literal const sys = require('node:sys'); const vm = require('node:vm'); vm.measureMemory(); .Ed . .It Fl -disable-wasm-trap-handler نودجی‌اس بررسی‌های محدوده WebAssembly مبتنی بر trap-handler مربوط به V8 را روی پلتفرم‌های ۶۴ بیتی فعال می‌کند که با حذف نیاز به بررسی‌های محدوده درون‌خطی، عملکرد WebAssembly را به‌طور چشمگیری بهبود می‌بخشد. این بهینه‌سازی نیازمند تخصیص یک قفسه (cage) حافظه مجازی بزرگ به ازای هر نمونه حافظه WebAssembly است (در حال حاضر معمولاً ۸ گیگابایت برای حافظه ۳۲ بیتی WebAssembly، و ۱۶ گیگابایت برای حافظه ۶۴ بیتی WebAssembly) تا دسترسی‌های خارج از محدوده را به دام بیندازد. در بیشتر پلتفرم‌های ۶۴ بیتی، فضای آدرس حافظه مجازی معمولاً به اندازه کافی بزرگ است (حدود ۱۲۸ ترابایت) تا کاربردهای معمول WebAssembly را در بر گیرد، اما اگر سیستم محدودیت‌های دستی روی حافظه مجازی داشته باشد (مثلاً از طریق \fBulimit -v\fR)، تخصیص حافظه WebAssembly به احتمال زیاد با خطای \fBWebAssembly.Memory(): could not allocate memory\fR با شکست مواجه می‌شود. در زمان راه‌اندازی، Node.js به‌طور خودکار بررسی می‌کند که آیا حافظه مجازی کافی برای تخصیص حداقل یک قفسه در دسترس است یا خیر، و در غیر این صورت، بهینه‌سازی trap-handler به‌طور خودکار غیرفعال می‌شود تا WebAssembly همچنان بتواند با استفاده از بررسی‌های محدوده درون‌خطی (با کارایی کمتر) اجرا شود. اما اگر برنامه نیاز به ایجاد چندین نمونه حافظه WebAssembly داشته باشد و سیستم همچنان محدودیت نسبتاً بالایی روی حافظه مجازی اعمال کرده باشد، ممکن است تخصیص نمونه‌های حافظه WebAssembly به دلیل افزایش مصرف حافظه مجازی، سریع‌تر از حد انتظار با شکست مواجه شود. گزینه \fB--disable-wasm-trap-handler\fR این بهینه‌سازی را به‌طور کامل غیرفعال می‌کند تا نمونه‌های حافظه WebAssembly همیشه به جای رزرو قفسه‌های بزرگ حافظه مجازی، از بررسی‌های محدوده درون‌خطی استفاده کنند. این امر اجازه می‌دهد تا در زمانی که فضای آدرس حافظه مجازی در دسترس فرایند Node.js محدود است، نمونه‌های بیشتری ایجاد شوند. . .It Fl -disallow-code-generation-from-strings باعث می‌شود که ویژگی‌های درونی زبان مانند \fBeval\fR و \fBnew Function\fR که از رشته‌ها کد تولید می‌کنند، به جای آن یک استثنا ایجاد نمایند. این گزینه بر ماژول \fBnode:vm\fR در Node.js تأثیر نمی‌گذارد. . .It Fl -dns-result-order Ns = Ns Ar order مقدار پیش‌فرض \fBorder\fR را در \fBdns.lookup()\fR و \fBdnsPromises.lookup()\fR تعیین می‌کند. مقدار می‌تواند یکی از موارد زیر باشد: .Bl -bullet .It \fBipv4first\fR: مقدار پیش‌فرض \fBorder\fR را به \fBipv4first\fR تنظیم می‌کند. .It \fBipv6first\fR: مقدار پیش‌فرض \fBorder\fR را به \fBipv6first\fR تنظیم می‌کند. .It \fBverbatim\fR: مقدار پیش‌فرض \fBorder\fR را به \fBverbatim\fR تنظیم می‌کند. .El مقدار پیش‌فرض \fBverbatim\fR است و تابع \fBdns.setDefaultResultOrder()\fR دارای اولویت بالاتری نسبت به \fB--dns-result-order\fR است. . .It Fl -enable-fips فعال‌سازی حالت FIPS در زمان راه‌اندازی. با OpenSSL 3، یک ارائه‌دهندهٔ پیکربندی‌شده به نام \fBfips\fR باید در دسترس بوده و با موفقیت مقداردهی اولیه شود. با OpenSSL 1.1.1، باید Node.js در برابر یک نسخه OpenSSL با قابلیت FIPS بیلد شده باشد. . .It Fl -enable-source-maps فعال‌سازی پشتیبانی از نگاشت مبدأ (Source Map) برای ردگیری پشته (stack traces). هنگام استفاده از یک ترنسپایلر مانند TypeScript، ردگیری پشته صادرشده توسط یک برنامه به کد ترنسپایل‌شده اشاره دارد، نه موقعیت منبع اصلی. گزینه \fB--enable-source-maps\fR کش کردن نگاشت‌های مبدأ را فعال می‌کند و نهایت تلاش خود را برای گزارش ردگیری پشته نسبت به فایل منبع اصلی انجام می‌دهد. بازنویسی \fBError.prepareStackTrace\fR ممکن است مانع از تغییر ردگیری پشته توسط \fB--enable-source-maps\fR شود. در تابع بازنویس، نتایج تابع اصلی \fBError.prepareStackTrace\fR را فراخوانی کرده و بازگردانید تا ردگیری پشته با نگاشت مبدأ اصلاح شود. .Bd -literal const originalPrepareStackTrace = Error.prepareStackTrace; Error.prepareStackTrace = (error, trace) => { // Modify error and trace and format stack trace with // original Error.prepareStackTrace. return originalPrepareStackTrace(error, trace); }; .Ed توجه داشته باشید که فعال‌سازی نگاشت‌های مبدأ می‌تواند هنگام دسترسی به \fBError.stack\fR تأخیر در برنامه ایجاد کند. اگر در برنامه خود مکرراً به \fBError.stack\fR دسترسی دارید، پیامدهای کارایی \fB--enable-source-maps\fR را در نظر بگیرید. . .It Fl -entry-url در صورت وجود، Node.js نقطه ورود را به جای یک مسیر، به عنوان یک URL تفسیر خواهد کرد. از قواعد تفکیک ماژول‌های ECMAScript پیروی می‌کند. هر پارامتر پرس‌وجو یا هش در URL از طریق \fBimport.meta.url\fR قابل دسترسی خواهد بود. .Bd -literal node --entry-url 'file:///path/to/file.js?queryparams=work#and-hashes-too' node --entry-url 'file.ts?query#hash' node --entry-url 'data:text/javascript,console.log("Hello")' .Ed . .It Fl -env-file-if-exists Ns = Ns Ar file رفتار آن مشابه \fB--env-file\fR است، اما چنانچه فایل وجود نداشته باشد، خطایی صادر نمی‌شود. . .It Fl -env-file Ns = Ns Ar file متغیرهای محیطی را از فایلی نسبت به دایرکتوری جاری بارگذاری کرده و آن‌ها را در \fBprocess.env\fR در دسترس برنامه‌ها قرار می‌دهد. متغیرهای محیطی پیکربندی‌کننده Node.js، مانند \fBNODE_OPTIONS\fR، تجزیه و اعمال می‌شوند. اگر متغیر یکسانی در محیط و در فایل تعریف شده باشد، مقدار محیط اولویت خواهد داشت. می‌توان چندین آرگومان \fB--env-file\fR را ارسال کرد. فایل‌های بعدی متغیرهای پیشینِ تعریف‌شده در فایل‌های قبلی را بازنویسی می‌کنند. اگر فایل وجود نداشته باشد، خطا صادر می‌شود. .Bd -literal node --env-file=.env --env-file=.development.env index.js .Ed فرمت فایل باید به صورت یک جفت کلید-مقدار در هر خط باشد که با \fB=\fR از هم جدا شده‌اند: .Bd -literal PORT=3000 .Ed هر متنی پس از \fB#\fR به عنوان کامنت تلقی می‌شود: .Bd -literal # This is a comment PORT=3000 # This is also a comment .Ed مقادیر می‌توانند با نقل‌قول‌های روبه‌رو شروع شده و خاتمه یابند: \fB`\fR، \fB"\fR یا \fB'\fR. آن‌ها از مقادیر حذف می‌شوند. .Bd -literal USERNAME="nodejs" # will result in `nodejs` as the value. .Ed مقادیر چندخطی پشتیبانی می‌شوند: .Bd -literal MULTI_LINE="THIS IS A MULTILINE" # will result in `THIS IS\\nA MULTILINE` as the value. .Ed کلمه کلیدی export پیش از کلید نادیده گرفته می‌شود: .Bd -literal export USERNAME="nodejs" # will result in `nodejs` as the value. .Ed اگر می‌خواهید متغیرهای محیطی را از فایلی بارگذاری کنید که ممکن است وجود نداشته باشد، می‌توانید به جای آن از فلگ \fB--env-file-if-exists\fR استفاده کنید. . .It Fl e , Fl -eval Ar "script" آرگومان بعدی را به عنوان جاوااسکریپت ارزیابی می‌کند. ماژول‌هایی که در REPL از پیش تعریف شده‌اند را می‌توان در \fBscript\fR نیز استفاده کرد. اگر \fBscript\fR با \fB-\fR آغاز شود، آن را با استفاده از \fB=\fR ارسال کنید (برای مثال \fBnode --print --eval=-42\fR) تا به عنوان مقدار \fB--eval\fR تجزیه شود. در ویندوز، استفاده از \fBcmd.exe\fR با نقل‌قول تکی به درستی کار نخواهد کرد زیرا فقط نقل‌قول دوگانه \fB"\fR را برای نقل‌قول می‌شناسد. در Powershell یا Git bash هر دو علامت \fB'\fR و \fB"\fR قابل استفاده هستند. اجرای کد حاوی انواع درون‌خطی امکان‌پذیر است مگر اینکه فلگ \fB--no-strip-types\fR ارائه شده باشد. . .It Fl -experimental-addon-modules فعال‌سازی پشتیبانی آزمایشی از وارد کردن (import) افزونه‌های \fB.node\fR. . .It Fl -experimental-config-file Ns = Ns Ar path , Fl -experimental-config-file در صورت وجود، Node.js به دنبال یک فایل پیکربندی در مسیر مشخص‌شده می‌گردد. اگر مسیر مشخص نشده باشد، Node.js به دنبال یک فایل \fBnode.config.json\fR در دایرکتوری کاری جاری خواهد گشت. برای تعیین یک مسیر سفارشی، از ساختار \fB--experimental-config-file=path\fR استفاده کنید. ساختار جداشده با فاصله \fB--experimental-config-file path\fR پشتیبانی نمی‌شود. نام مستعار \fB--experimental-default-config-file\fR معادل با \fB--experimental-config-file\fR بدون آرگومان است. نودجی‌اس فایل پیکربندی را می‌خواند و تنظیمات را اعمال می‌کند. فایل پیکربندی باید یک فایل JSON با ساختار زیر باشد. مقدار \fBvX.Y.Z\fR در \fB$schema\fR باید با نسخه Node.js در حال استفاده یا \fBlatest-vX.x\fR برای آخرین نسخه از آن سری انتشار اصلی جایگزین شود. .Bd -literal { "$schema": "https://nodejs.org/dist/vX.Y.Z/docs/node-config-schema.json", "nodeOptions": { "import": [ "amaro/strip" ], "watch-path": "src", "watch-preserve-output": true }, "test": { "test-isolation": "process" }, "watch": { "watch-preserve-output": true } } .Ed فایل پیکربندی از گزینه‌های مختص به فضای نام پشتیبانی می‌کند: .Bl -bullet .It فیلد \fBnodeOptions\fR شامل فلگ‌های خط فرمانی است که در \fBNODE_OPTIONS\fR مجاز هستند. .It فیلدهای فضای نام مانند \fBtest\fR، \fBwatch\fR و \fBpermission\fR حاوی پیکربندی مختص به آن زیرسیستم هستند. .El فایل پیکربندی می‌تواند یک نسخه اصلی مشخص Node.js را با \fBnodeVersion\fR هدف قرار دهد: .Bd -literal { "nodeVersion": 25, "nodeOptions": { "watch-path": "src" } } .Ed برای نگهداری چندین پیکربندی مختص به نسخه در یک فایل، از آرایه \fBconfigs\fR استفاده کنید. نودجی‌اس از اولین موردی استفاده می‌کند که \fBnodeVersion\fR آن با نسخه اصلی جاری Node.js مطابقت داشته باشد: .Bd -literal { "$schema": "https://nodejs.org/dist/latest-v26.x/docs/node-config-schema.json", "configs": [ { "nodeVersion": 25, "config": { "$schema": "https://nodejs.org/dist/latest-v25.x/docs/node-config-schema.json", "nodeOptions": { "watch-path": "src" } } } ] } .Ed هنگامی که از \fBconfigs\fR استفاده می‌شود، بالاترین سطح تنها می‌تواند شامل \fB$schema\fR و \fBconfigs\fR باشد. هر مورد \fBconfigs\fR باید یک عدد صحیح \fBnodeVersion\fR و یک شیء \fBconfig\fR تعریف کند. یک پیکربندی تکی سطح بالا نیازی به \fBnodeVersion\fR ندارد، اما در صورت وجود باید با نسخه اصلی جاری Node.js مطابقت داشته باشد. هنگامی که یک فضای نام در فایل پیکربندی وجود داشته باشد، Node.js به‌طور خودکار فلگ متناظر (مانند \fB--test\fR، \fB--watch\fR، \fB--permission\fR) را فعال می‌کند. این امر به شما اجازه می‌دهد تا گزینه‌های مختص زیرسیستم را بدون ارسال صریح فلگ در خط فرمان پیکربندی کنید. برای مثال: .Bd -literal { "test": { "test-isolation": "process" } } .Ed معادل است با: .Bd -literal node --test --test-isolation=process .Ed برای غیرفعال کردن فلگ خودکار در حین استفاده از گزینه‌های فضای نام، می‌توانید صراحتاً مقدار فلگ را درون فضای نام به \fBfalse\fR تنظیم کنید: .Bd -literal { "test": { "test": false, "test-isolation": "process" } } .Ed فلگ‌های No-op پشتیبانی نمی‌شوند. همه فلگ‌های V8 در حال حاضر پشتیبانی نمی‌شوند. امکان استفاده از شمای رسمی JSON برای اعتبارسنجی فایل پیکربندی وجود دارد که ممکن است بسته به نسخه Node.js متفاوت باشد. هر کلید در فایل پیکربندی متناظر با یک فلگ است که می‌تواند به عنوان آرگومان خط فرمان ارسال شود. مقدار کلید همان مقداری است که به فلگ ارسال خواهد شد. برای مثال، فایل پیکربندی بالا معادل با آرگومان‌های خط فرمان زیر است: .Bd -literal node --import amaro/strip --watch-path=src --watch-preserve-output --test-isolation=process .Ed اولویت در پیکربندی به شرح زیر است: .Bl -bullet .It متغیر NODE_OPTIONS و گزینه‌های خط فرمان .It گزینه‌های NODE_OPTIONS در Dotenv .It فایل پیکربندی .El مقادیر فایل پیکربندی، مقادیر متغیرهای محیطی، گزینه‌های خط فرمان یا فایل محیطی \fBNODE_OPTIONS\fR تجزیه‌شده توسط فلگ \fB--env-file\fR را بازنویسی نخواهند کرد. کلیدها نمی‌توانند در همان فضای نام یا در فضاهای نام مختلف تکرار شوند. تجزیه‌کننده پیکربندی در صورتی که فایل پیکربندی شامل کلیدهای ناشناخته یا کلیدهایی باشد که در یک فضای نام قابل استفاده نیستند، خطایی صادر خواهد کرد. نودجی‌اس پیکربندی ارائه‌شده توسط کاربر را اعتبارسنجی یا پالایش نمی‌کند، بنابراین \fBهرگز\fR از فایل‌های پیکربندی نامعتمد استفاده نکنید. . .It Fl -experimental-default-config-file این فلگ نام مستعاری برای \fB--experimental-config-file\fR بدون آرگومان است. در صورت وجود، Node.js به دنبال یک فایل \fBnode.config.json\fR در دایرکتوری کاری جاری گشته و آن را به عنوان فایل پیکربندی بارگذاری می‌کند. . .It Fl -experimental-eventsource فعال‌سازی ارائه وب‌ای‌پی‌آی EventSource در دامنه سراسری (global scope). . .It Fl -experimental-ffi ماژول آزمایشی \fBnode:ffi\fR را فعال می‌کند. این فلگ تنها در بیلدهایی با پشتیبانی FFI در دسترس است. . .It Fl -experimental-import-meta-resolve پشتیبانی آزمایشی از URL والد در \fBimport.meta.resolve()\fR را فعال می‌کند که اجازه می‌دهد آرگومان دوم \fBparentURL\fR برای حل متنی ارسال شود. پیش‌تر کل ویژگی \fBimport.meta.resolve\fR را کنترل می‌کرد. . .It Fl -experimental-import-text فعال‌سازی پشتیبانی آزمایشی از وارد کردن ماژول‌ها با \fBwith { type: 'text' }\fR. . .It Fl -experimental-inspector-network-resource فعال‌سازی پشتیبانی آزمایشی از منابع شبکه بازرس (inspector). . .It Fl -experimental-loader Ns = Ns Ar module ماژول (\fBmodule\fR) حاوی قلاب‌های سفارشی‌سازی ناهمگام ماژولِ صادرشده را مشخص می‌کند. پارامتر \fBmodule\fR می‌تواند هر رشته‌ای باشد که به عنوان مشخص‌کننده \fBimport\fR پذیرفته می‌شود. این ویژگی در صورت استفاده با مدل مجوزها (Permission Model) نیازمند \fB--allow-worker\fR است. . .It Fl -experimental-network-inspection فعال‌سازی پشتیبانی آزمایشی از بازرسی شبکه با ابزارهای توسعه کروم (Chrome DevTools). . .It Fl -experimental-package-map Ns = Ns Ar فعال‌سازی حل آزمایشی نگاشت بسته (package map). آرگومان \fBpath\fR مکان یک فایل پیکربندی JSON را مشخص می‌کند که نگاشت‌های حل بسته را تعریف می‌نماید. .Bd -literal node --experimental-package-map=./package-map.json app.js .Ed هنگام فعال بودن، حل مشخص‌کننده‌های ساده برای حل به نگاشت بسته مراجعه می‌کند. این امر اجازه کنترل صریح بر اینکه کدام بسته‌ها می‌توانند چه وابستگی‌هایی را وارد کنند می‌دهد. برای جزئیات درباره فرمت فایل پیکربندی و الگوریتم حل، مستندات Package maps را ببینید. . .It Fl -experimental-print-required-tla اگر گراف ماژول ES به دلیل داشتن هرگونه \fBawait\fR در سطح بالا نتواند \fBrequire()\fR شود، این فلگ به Node.js اجازه می‌دهد تا مکان آن‌ها را پیدا کرده و چاپ کند. . .It Fl -experimental-quic فعال‌سازی پشتیبانی آزمایشی از پروتکل QUIC. . .It Fl -experimental-sea-config از این فلگ برای ایجاد یک بلاب (blob) استفاده کنید که می‌تواند درون باینری Node.js تزریق شود تا یک برنامه اجرایی مستقل (single executable application) تولید گردد. برای جزئیات بیشتر، مستندات مربوط به این پیکربندی را ببینید. . .It Fl -experimental-shadow-realm از این فلگ برای فعال‌سازی پشتیبانی از ShadowRealm استفاده کنید. . .It Fl -experimental-storage-inspection فعال‌سازی پشتیبانی آزمایشی از بازرسی حافظه ذخیره‌سازی. . .It Fl -experimental-stream-iter ماژول آزمایشی \fBnode:stream/iter\fR را فعال می‌کند. . .It Fl -experimental-test-coverage هنگامی که همراه با ماژول \fBnode:test\fR استفاده شود، یک گزارش پوشش کد به عنوان بخشی از خروجی test runner تولید می‌شود. اگر هیچ آزمایشی اجرا نشود، گزارش پوشش تولید نخواهد شد. برای جزئیات بیشتر مستندات جمع‌آوری پوشش کد از آزمایش‌ها را ببینید. . .It Fl -experimental-test-module-mocks ماک کردن ماژول را در test runner فعال می‌کند. این ویژگی در صورت استفاده همراه با مدل مجوزها (Permission Model) نیازمند \fB--allow-worker\fR است. . .It Fl -experimental-test-tag-filter Ns = Ns Ar '' تنها آزمایش‌هایی را اجرا می‌کند که با عبارت بولی فیلتر برچسب ارائه‌شده مطابقت داشته باشند. آزمایش‌ها برچسب‌ها را از طریق گزینه \fBtags\fR در \fBtest()\fR، \fBit()\fR، \fBsuite()\fR یا \fBdescribe()\fR اعلان می‌کنند. برچسب‌ها از سوئیت‌ها به آزمایش‌های تودرتو با اجتماع به ارث می‌رسند. این عبارت از عملگرهای بولی (\fBand\fR/\fB&&\fR، \fBor\fR/\fB||\fR، \fBnot\fR/\fB!\fR)، پرانتزها برای گروه‌بندی و نویسه‌های عام \fB*\fR درون شناسه‌ها پشتیبانی می‌کند. اولویت استاندارد اعمال می‌شود: \fBnot\fR اتصال قوی‌تری نسبت به \fBand\fR و آن نیز اتصال قوی‌تری نسبت به \fBor\fR دارد. برای دستور زبان کامل و رفتار، Test tags را ببینید. این فلگ می‌تواند بیش از یک بار مشخص شود؛ چندین عبارت با AND ترکیب می‌شوند، بنابراین یک آزمایش باید هر عبارت را برای اجرا برآورده کند. یک عبارت نادرست باعث می‌شود که test runner پیش از اجرای هر آزمایشی با وضعیتی غیرصفر خارج شود. . .It Fl -experimental-vfs ماژول آزمایشی \fBnode:vfs\fR را فعال می‌کند. . .It Fl -experimental-vm-modules پشتیبانی آزمایشی از ماژول‌های ES را در ماژول \fBnode:vm\fR فعال می‌کند. . .It Fl -experimental-wasi-unstable-preview1 پشتیبانی آزمایشی از واسط سیستم وب‌اسمبلی (WASI) را فعال می‌کند. . .It Fl -experimental-worker-inspection پشتیبانی آزمایشی از بازرسی worker را با ابزارهای توسعه Chrome DevTools فعال می‌کند. . .It Fl -force-context-aware بارگذاری افزونه‌های بومی که context-aware نیستند را غیرفعال می‌کند. . .It Fl -force-fips حالت FIPS را در زمان راه‌اندازی فعال کرده و از غیرفعال شدن آن توسط کد اسکریپت جلوگیری می‌کند. نیازمندی‌های OpenSSL مشابه \fB--enable-fips\fR اعمال می‌شوند. . .It Fl -force-node-api-uncaught-exceptions-policy رویداد \fBuncaughtException\fR را روی فراخوانی‌های بازگشتی ناهمگام Node-API اجباری می‌کند. برای جلوگیری از فروپاشی فرایند توسط یک افزونه موجود، این فلگ به‌طور پیش‌فرض فعال نیست. در آینده این فلگ به‌طور پیش‌فرض فعال خواهد شد تا رفتار صحیح تضمین گردد. . .It Fl -frozen-intrinsics ویژگی‌های توکار منجمدشده آزمایشی مانند \fBArray\fR و \fBObject\fR را فعال می‌کند. تنها بافت ریشه پشتیبانی می‌شود. هیچ تضمینی وجود ندارد که \fBglobalThis.Array\fR در واقع مرجع توکار پیش‌فرض باشد. کد ممکن است تحت این فلگ دچار خطا شود. برای مجاز ساختن افزودن پلی‌فیل‌ها، هر دو فلگ \fB--require\fR و \fB--import\fR پیش از منجمد کردن موارد توکار اجرا می‌شوند. . .It Fl -heap-prof پروفایلر هیپ V8 را در زمان راه‌اندازی آغاز کرده و پیش از خروج، پروفایل هیپ را بر روی دیسک می‌نویسد. اگر \fB--heap-prof-dir\fR مشخص نشده باشد، پروفایل تولیدشده در دایرکتوری کاری جاری قرار می‌گیرد. اگر \fB--heap-prof-name\fR مشخص نشده باشد، پروفایل تولیدشده با نام \fBHeap.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.heapprofile\fR ذخیره می‌شود. .Bd -literal $ node --heap-prof index.js $ ls *.heapprofile Heap.20190409.202950.15293.0.001.heapprofile .Ed . .It Fl -heap-prof-dir دایرکتوری محل قرارگیری پروفایل‌های هیپ تولیدشده توسط \fB--heap-prof\fR را مشخص می‌کند. مقدار پیش‌فرض توسط گزینه خط فرمان \fB--diagnostic-dir\fR کنترل می‌شود. . .It Fl -heap-prof-interval میانگین فاصله نمونه‌برداری را بر حسب بایت برای پروفایل‌های هیپ تولیدشده توسط \fB--heap-prof\fR مشخص می‌کند. مقدار پیش‌فرض 512 * 1024 بایت است. . .It Fl -heap-prof-name نام فایل پروفایل هیپ تولیدشده توسط \fB--heap-prof\fR را مشخص می‌کند. . .It Fl -heapsnapshot-near-heap-limit Ns = Ns Ar max_count هنگامی که مصرف هیپ V8 به حد مجاز هیپ نزدیک می‌شود، یک اسنپ‌شات هیپ V8 را روی دیسک می‌نویسد. مقدار \fBcount\fR باید یک عدد صحیح غیرمنفی باشد (در این حالت Node.js حداکثر \fBmax_count\fR اسنپ‌شات را روی دیسک می‌نویسد). هنگام تولید اسنپ‌شات‌ها، فرایند زباله‌روبی ممکن است اجرا شده و مصرف هیپ را کاهش دهد. بنابراین چندین اسنپ‌شات ممکن است پیش از اتمام نهایی حافظه نمونه Node.js روی دیسک نوشته شوند. این اسنپ‌شات‌های هیپ را می‌توان برای تعیین اینکه چه اشیایی در طول زمانِ گرفتن اسنپ‌شات‌های متوالی تخصیص داده می‌شوند مقایسه کرد. تضمین نمی‌شود که Node.js دقیقاً \fBmax_count\fR اسنپ‌شات را بنویسد، اما نهایت تلاش خود را می‌کند تا دست‌کم یکی و حداکثر تا \fBmax_count\fR اسنپ‌شات را پیش از اتمام حافظه نمونه Node.js زمانی که \fBmax_count\fR بزرگتر از \fB0\fR است تولید کند. تولید اسنپ‌شات‌های V8 نیازمند زمان و حافظه است (هم حافظه مدیریت‌شده توسط هیپ V8 و هم حافظه بومی خارج از هیپ V8). هر چه هیپ بزرگتر باشد، منابع بیشتری مصرف خواهد شد. Node.js هیپ V8 را برای جبران سربار حافظه اضافی هیپ تنظیم می‌کند و تمام تلاش خود را به کار می‌بندد تا از تمام شدن حافظه در دسترس فرایند جلوگیری کند. در صورتی که فرایند بیش از حد مناسب حافظه مصرف کند، ممکن است بر اساس پیکربندی سیستم ناگهان متوقف شود. .Bd -literal $ 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 .... .Ed . .It Fl -heapsnapshot-signal Ns = Ns Ar signal یک مدیریت‌کننده سیگنال را فعال می‌کند که باعث می‌شود فرایند Node.js هنگام دریافت سیگنال مشخص‌شده یک دامپ هیپ بنویسد. پارامتر \fBsignal\fR باید نام یک سیگنال معتبر باشد. به‌طور پیش‌فرض غیرفعال است. .Bd -literal $ 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 .Ed . .It Fl h , Fl -help چاپ گزینه‌های خط فرمان node. خروجی این گزینه نسبت به این سند جزئیات کمتری دارد. . .It Fl -icu-data-dir Ns = Ns Ar file مسیر بارگذاری داده‌های ICU را مشخص می‌کند. (بر \fBNODE_ICU_DATA\fR اولویت دارد.) . .It Fl -import Ns = Ns Ar module ماژول مشخص‌شده را در زمان راه‌اندازی از پیش بارگذاری می‌کند. اگر این فلگ چندین بار ارائه شود، هر ماژول به ترتیب ظاهر شدن اجرا خواهد شد، با شروع از مواردی که در \fBNODE_OPTIONS\fR ارائه شده‌اند. از قواعد تفکیک ماژول‌های ECMAScript پیروی می‌کند. از \fB--require\fR برای بارگذاری یک ماژول CommonJS استفاده کنید. ماژول‌های پیش‌بارگذاری‌شده با \fB--require\fR قبل از ماژول‌های پیش‌بارگذاری‌شده با \fB--import\fR اجرا می‌شوند. ماژول‌ها در ریسمان اصلی و همچنین در تمام ریسمان‌های کارگر، فرایندهای انشعاب‌یافته (forked) یا خوشه‌ای پیش‌بارگذاری می‌شوند. . .It Fl -input-type Ns = Ns Ar type نودجی‌اس را پیکربندی می‌کند تا ورودی \fB--eval\fR یا \fBSTDIN\fR را به عنوان CommonJS یا یک ماژول ES تفسیر نماید. مقادیر معتبر عبارتند از \fB"commonjs"\fR، \fB"module"\fR، \fB"module-typescript"\fR و \fB"commonjs-typescript"\fR. مقادیر \fB"-typescript"\fR با فلگ \fB--no-strip-types\fR در دسترس نیستند. حالت پیش‌فرض بدون مقدار است، یا چنانچه \fB--no-experimental-detect-module\fR ارسال شود \fB"commonjs"\fR خواهد بود. اگر \fB--input-type\fR ارائه نشود، Node.js سعی می‌کند نحو را با مراحل زیر تشخیص دهد: .Bl -bullet .It اجرای ورودی به عنوان CommonJS. .It اگر مرحله ۱ با شکست مواجه شد، ورودی را به عنوان یک ماژول ES اجرا کند. .It اگر مرحله ۲ با SyntaxError مواجه شد، انواع (types) را حذف کند. .It اگر مرحله ۳ با کد خطای \fBERR_UNSUPPORTED_TYPESCRIPT_SYNTAX\fR یا \fBERR_INVALID_TYPESCRIPT_SYNTAX\fR با شکست مواجه شد، خطای مرحله ۲ را همراه با خطای TypeScript در پیام صادر کند، در غیر این صورت به عنوان CommonJS اجرا شود. .It اگر مرحله ۴ با شکست مواجه شد، ورودی را به عنوان یک ماژول ES اجرا کند. .El برای جلوگیری از تأخیر ناشی از چند مرحله تشخیص نحو، می‌توان از فلگ \fB--input-type=type\fR برای تعیین چگونگی تفسیر ورودی \fB--eval\fR استفاده کرد. محیط REPL از این گزینه پشتیبانی نمی‌کند. کاربرد \fB--input-type=module\fR همراه با \fB--print\fR خطا صادر می‌کند، زیرا \fB--print\fR از نحو ماژول ES پشتیبانی نمی‌کند. . .It Fl -insecure-http-parser فلگ‌های مسامحه را روی تجزیه‌کننده HTTP فعال می‌کند. این کار ممکن است تعامل‌پذیری با پیاده‌سازی‌های غیراستاندارد HTTP را ممکن سازد. هنگام فعال بودن، تجزیه‌کننده موارد زیر را می‌پذیرد: .Bl -bullet .It مقادیر نامعتبر هدرهای HTTP. .It نسخه‌های نامعتبر HTTP. .It اجازه به پیام حاوی هر دو هدر \fBTransfer-Encoding\fR و \fBContent-Length\fR. .It اجازه به داده‌های اضافه پس از پیام در صورت حضور \fBConnection: close\fR. .It اجازه به کدگذاری‌های انتقال اضافی پس از ارائه \fBchunked\fR. .It اجازه به استفاده از \fB\\n\fR به عنوان جداکننده توکن به جای \fB\\r\\n\fR. .It اجازه به عدم ارائه \fB\\r\\n\fR پس از یک قطعه (chunk). .It اجازه به حضور فاصله‌ها پس از اندازه قطعه و قبل از \fB\\r\\n\fR. .El همه موارد بالا برنامه شما را در معرض حملات قاچاق درخواست یا مسموم‌سازی قرار می‌دهند. از استفاده از این گزینه خودداری کنید. . .It Fl -inspect-brk Ns = Ns Ar [[host:]port] بازرس را روی \fBhost:port\fR فعال کرده و در شروع اسکریپت کاربر متوقف می‌شود. مقدار پیش‌فرض \fBhost:port\fR برابر با \fB127.0.0.1:9229\fR است. اگر پورت \fB0\fR مشخص شود، یک پورت تصادفی در دسترس استفاده خواهد شد. برای توضیحات بیشتر درباره اشکال‌زدای Node.js، بخش یکپارچه‌سازی V8 Inspector را ببینید. هشدار امنیتی زیر را در رابطه با کاربرد پارامتر \fBhost\fR ببینید. . .It Fl -inspect-port Ns = Ns Ar [host:]port مقدار \fBhost:port\fR مورد استفاده در زمان فعال‌سازی بازرس را تنظیم می‌کند. هنگام فعال‌سازی بازرس با ارسال سیگنال \fBSIGUSR1\fR مفید است. مگر زمانی که \fB--disable-sigusr1\fR ارسال شده باشد. میزبان پیش‌فرض \fB127.0.0.1\fR است. اگر پورت \fB0\fR مشخص شود، یک پورت آزاد تصادفی استفاده خواهد شد. هشدار امنیتی زیر را در رابطه با کاربرد پارامتر \fBhost\fR ببینید. . .It Fl -inspect-publish-uid Ns = Ns Ar stderr,http روش‌های قرار گرفتن نشانی URL وب‌سوکت بازرس در معرض دید را مشخص می‌کند. به‌طور پیش‌فرض URL وب‌سوکت بازرس در stderr و در نقطه پایانی \fB/json/list\fR در نشانی \fBhttp://host:port/json/list\fR در دسترس است. . .It Fl -inspect-wait Ns = Ns Ar [[host:]port] بازرس را روی \fBhost:port\fR فعال کرده و منتظر اتصال اشکال‌زدا می‌ماند. مقدار پیش‌فرض \fBhost:port\fR برابر با \fB127.0.0.1:9229\fR است. اگر پورت \fB0\fR مشخص شود، یک پورت تصادفی در دسترس استفاده خواهد شد. برای توضیحات بیشتر درباره اشکال‌زدای Node.js، بخش یکپارچه‌سازی V8 Inspector را ببینید. هشدار امنیتی زیر را در رابطه با کاربرد پارامتر \fBhost\fR ببینید. . .It Fl -inspect Ns = Ns Ar [[host:]port] بازرس را روی \fBhost:port\fR فعال می‌کند. مقدار پیش‌فرض \fB127.0.0.1:9229\fR است. اگر پورت \fB0\fR مشخص شود، یک پورت آزاد تصادفی استفاده خواهد شد. یکپارچه‌سازی بازرس V8 به ابزارهایی مانند Chrome DevTools و محیط‌های IDE اجازه می‌دهد نمونه‌های Node.js را اشکال‌زدایی و پروفایل کنند. این ابزارها از طریق یک پورت tcp به نمونه‌های Node.js متصل می‌شوند و با استفاده از پروتکل Chrome DevTools ارتباط برقرار می‌کنند. برای توضیحات بیشتر، بخش یکپارچه‌سازی V8 Inspector را ببینید. . .It Fl i , Fl -interactive محیط REPL را باز می‌کند حتی اگر stdin یک ترمینال به نظر نرسد. . .It Fl -jitless تخصیص حافظه اجرایی در زمان اجرا را غیرفعال می‌کند. این گزینه ممکن است در برخی پلتفرم‌ها به دلایل امنیتی الزامی باشد. همچنین می‌تواند سطح حمله را در سایر پلتفرم‌ها کاهش دهد، اما تأثیر عملکردی آن ممکن است شدید باشد. . .It Fl -localstorage-file Ns = Ns Ar file فایل مورد استفاده برای ذخیره داده‌های \fBlocalStorage\fR. اگر فایل وجود نداشته باشد، در نخستین باری که به \fBlocalStorage\fR دسترسی پیدا شود ایجاد می‌گردد. همان فایل می‌تواند به‌طور همزمان بین چندین فرایند Node.js به اشتراک گذاشته شود. . .It Fl -max-http-header-size Ns = Ns Ar size حداکثر اندازه هدرهای HTTP را بر حسب بایت مشخص می‌کند. مقدار پیش‌فرض 16 KiB است. . .It Fl -max-old-space-size-percentage Ns = Ns Ar percentage حداکثر اندازه حافظه بخش قدیمی (old space) در V8 را به صورت درصدی از حافظه موجود سیستم تعیین می‌کند. این فلگ در صورت تعیین هر دو، نسبت به \fB--max-old-space-size\fR اولویت دارد. پارامتر \fBpercentage\fR باید عددی بزرگتر از 0 و تا 100 باشد که درصد حافظه موجود سیستم را برای تخصیص به هیپ V8 نشان می‌دهد. \fBنکته:\fR این فلگ از \fB--max-old-space-size\fR بهره می‌برد که ممکن است در پلتفرم‌های ۳۲ بیتی به دلیل مشکلات سرریز عدد صحیح غیرقابل اعتماد باشد. .Bd -literal # Using 50% of available system memory node --max-old-space-size-percentage=50 index.js # Using 75% of available system memory node --max-old-space-size-percentage=75 index.js .Ed . .It Fl -network-family-autoselection-attempt-timeout مقدار پیش‌فرض مهلت تلاش انتخاب خودکار خانواده شبکه را تعیین می‌کند. برای اطلاعات بیشتر، \fBnet.getDefaultAutoSelectFamilyAttemptTimeout()\fR را ببینید. . .It Fl -no-addons شرط صدور \fBnode-addons\fR و همچنین بارگذاری افزونه‌های بومی را غیرفعال می‌کند. هنگامی که \fB--no-addons\fR مشخص شود، فراخوانی \fBprocess.dlopen\fR یا فراخوانی یک افزونه بومی ++C با خطا مواجه شده و یک استثنا صادر می‌کند. . .It Fl -no-async-context-frame Disables the use of \fBAsyncLocalStorage\fR backed by \fBAsyncContextFrame\fR and uses the prior implementation which relied on async_hooks. The previous model is retained for compatibility with Electron and for cases where the context flow may differ. However, if a difference in flow is found please report it. . .It Fl -no-deprecation Silence deprecation warnings. . .It Fl -no-experimental-detect-module Disable using syntax detection to determine module type. . .It Fl -no-experimental-global-navigator Disable exposition of Navigator API on the global scope. . .It Fl -no-experimental-repl-await از این فلگ برای غیرفعال‌سازی await در سطح بالا (top-level await) در REPL استفاده کنید. . .It Fl -no-experimental-require-module نام مستعار قدیمی برای \fB--no-require-module\fR. . .It Fl -no-experimental-sqlite ماژول آزمایشی \fBnode:sqlite\fR را غیرفعال می‌کند. . .It Fl -no-experimental-websocket ارائه \fB\fR در دامنه سراسری را غیرفعال می‌کند. . .It Fl -no-experimental-webstorage پشتیبانی از \fBWeb Storage\fR را غیرفعال می‌کند. . .It Fl -no-extra-info-on-fatal-exception اطلاعات اضافی در استثنای مهلک (fatal exception) که موجب خروج می‌شود را پنهان می‌کند. . .It Fl -no-force-async-hooks-checks بررسی‌های زمان اجرا برای \fBasync_hooks\fR را غیرفعال می‌کند. این موارد همچنان در زمان فعال شدن پویای \fBasync_hooks\fR به‌طور خودکار فعال خواهند شد. . .It Fl -no-global-search-paths ماژول‌ها را در مسیرهای سراسری مانند \fB$HOME/.node_modules\fR و \fB$NODE_PATH\fR جستجو نمی‌کند. . .It Fl -no-network-family-autoselection الگوریتم انتخاب خودکار خانواده شبکه را غیرفعال می‌کند مگر آنکه گزینه‌های اتصال صراحتاً آن را فعال کنند. . .It Fl -no-require-module پشتیبانی از بارگذاری همگام گراف ماژول ES در \fBrequire()\fR را غیرفعال می‌کند. بخش بارگذاری ماژول‌های ECMAScript با استفاده از \fBrequire()\fR را ببینید. . .It Fl -no-strip-types حذف انواع (type-stripping) را برای فایل‌های TypeScript غیرفعال می‌کند. برای اطلاعات بیشتر، مستندات type-stripping در TypeScript را ببینید. . .It Fl -no-warnings تمام هشدارهای فرایند (شامل هشدارهای منسوخ‌شدگی) را بی‌صدا می‌کند. . .It Fl -node-memory-debug بررسی‌های اشکال‌زدایی اضافی برای نشت حافظه در بخش‌های داخلی Node.js را فعال می‌کند. این گزینه معمولاً فقط برای توسعه‌دهندگانی که خود Node.js را اشکال‌زدایی می‌کنند کاربرد دارد. . .It Fl -openssl-config Ns = Ns Ar file یک فایل پیکربندی OpenSSL را در زمان راه‌اندازی بارگذاری می‌کند. این فایل می‌تواند یک ارائه‌دهنده FIPS در OpenSSL 3 را فعال کند یا یک بیلد OpenSSL 1.1.1 با قابلیت FIPS را پیکربندی نماید. حالت FIPS را ببینید. این گزینه بر متغیر محیطی \fBOPENSSL_CONF\fR اولویت دارد. . .It Fl -openssl-legacy-provider ارائه‌دهنده موروثی (legacy provider) در OpenSSL 3.0 را فعال می‌کند. برای اطلاعات بیشتر لطفاً OSSL_PROVIDER-legacy را ببینید. . .It Fl -openssl-shared-config فعال‌سازی بخش پیکربندی پیش‌فرض OpenSSL به نام \fBopenssl_conf\fR جهت خوانده شدن از فایل پیکربندی OpenSSL. فایل پیکربندی پیش‌فرض \fBopenssl.cnf\fR نام دارد اما می‌توان آن را با استفاده از متغیر محیطی \fBOPENSSL_CONF\fR یا با گزینه خط فرمان \fB--openssl-config\fR تغییر داد. مکان فایل پیکربندی پیش‌فرض OpenSSL به نحوه پیوند داده شدن OpenSSL به Node.js بستگی دارد. به اشتراک‌گذاری پیکربندی OpenSSL ممکن است پیامدهای ناخواسته‌ای داشته باشد و توصیه می‌شود از یک بخش پیکربندی مختص به Node.js استفاده کنید که \fBnodejs_conf\fR است و در صورت عدم استفاده از این گزینه پیش‌فرض می‌باشد. . .It Fl -pending-deprecation هشدارهای منسوخ‌شدگی معلق (pending deprecation) را صادر می‌کند. هشدارهای منسوخ‌شدگی معلق عموماً با منسوخ‌شدگی زمان اجرا یکسان هستند، با این استثنای قابل توجه که به‌طور پیش‌فرض \fIخاموش\fR هستند و منتشر نمی‌شوند مگر اینکه یا فلگ خط فرمان \fB--pending-deprecation\fR یا متغیر محیطی \fBNODE_PENDING_DEPRECATION=1\fR تنظیم شده باشد. هشدارهای منسوخ‌شدگی معلق برای ارائه نوعی مکانیزم گزینشی "هشدار زودهنگام" استفاده می‌شوند که توسعه‌دهندگان می‌توانند از آن برای تشخیص کاربرد ای‌پی‌آی‌های منسوخ بهره ببرند. . .It Fl -permission مدل مجوزها (Permission Model) را برای فرایند جاری فعال می‌کند. هنگام فعال بودن، مجوزهای زیر محدود می‌شوند: .Bl -bullet .It سیستم فایل — قابل مدیریت از طریق فلگ‌های \fB--allow-fs-read\fR و \fB--allow-fs-write\fR .It شبکه — قابل مدیریت از طریق فلگ \fB--allow-net\fR .It فرایند فرزند — قابل مدیریت از طریق فلگ \fB--allow-child-process\fR .It ریسمان‌های کارگر — قابل مدیریت از طریق فلگ \fB--allow-worker\fR .It واسط WASI — قابل مدیریت از طریق فلگ \fB--allow-wasi\fR .It افزونه‌ها — قابل مدیریت از طریق فلگ \fB--allow-addons\fR .It رابط FFI — قابل مدیریت از طریق فلگ \fB--allow-ffi\fR .It لودرهای OpenSSL STORE — قابل مدیریت از طریق فلگ \fB--allow-openssl-store\fR .El . .It Fl -permission-audit حالت حسابرسی (audit mode) را برای مدل مجوزها فعال می‌کند. هنگام فعال بودن، بررسی‌های مجوز انجام می‌شوند اما دسترسی مسدود \fBنمی‌شود\fR — هیچ خطای \fBERR_ACCESS_DENIED\fR صادر نمی‌شود. در عوض، هر نقض مجوز از طریق ماژول \fBnode:diagnostics_channel\fR منتشر می‌شود و اجرا به‌طور عادی ادامه می‌یابد. این فلگ نیازی به تعیین \fB--permission\fR ندارد. فلگ‌های \fB--allow-*\fR در حالت حسابرسی مورد نیاز نیستند، زیرا هیچ دسترسی رد نمی‌شود. حالت حسابرسی برای پی بردن به مجوزهای مورد نیاز برنامه شما پیش از استقرار با \fB--permission\fR مفید است. مستندات Permission Model را برای فهرست نام کانال‌های تشخیصی و فرمت پیام‌ها ببینید. اگر هر دو فلگ \fB--permission\fR و \fB--permission-audit\fR مشخص شوند، فلگ \fB--permission\fR اولویت داشته و مدل مجوزها در حالت اجباری (enforce) اجرا می‌شود. . .It Fl -preserve-symlinks به لودر ماژول دستور می‌دهد تا هنگام حل و کش کردن ماژول‌ها، پیوندهای نمادین (symbolic links) را حفظ کند. به‌طور پیش‌فرض، هنگامی که Node.js ماژولی را از مسیری که به صورت نمادین به مکان دیگری روی دیسک پیوند دارد بارگذاری می‌کند، پیوند را دنبال کرده و از مسیر واقعی فیزیکی ماژول هم به عنوان یک شناسه و هم به عنوان مسیر ریشه برای یافتن ماژول‌های وابستگی دیگر استفاده می‌کند. در بیشتر موارد، این رفتار پیش‌فرض قابل قبول است. با این حال هنگام استفاده از پیوندهای نمادین peer dependencies، همان‌طور که در مثال زیر نشان داده شده است، رفتار پیش‌فرض باعث صدور استثنا در صورتی می‌شود که \fBmoduleA\fR تلاش کند \fBmoduleB\fR را به عنوان یک peer dependency فراخوانی کند: .Bd -literal {appDir} ├── app │ ├── index.js │ └── node_modules │ ├── moduleA -> {appDir}/moduleA │ └── moduleB │ ├── index.js │ └── package.json └── moduleA ├── index.js └── package.json .Ed فلگ خط فرمان \fB--preserve-symlinks\fR به Node.js دستور می‌دهد تا به جای مسیر واقعی، از مسیر پیوند نمادین برای ماژول‌ها استفاده کند و بدین ترتیب اجازه می‌دهد peer dependencies پیوندیافته نمادین پیدا شوند. با این حال توجه داشته باشید که استفاده از \fB--preserve-symlinks\fR می‌تواند عوارض جانبی دیگری داشته باشد. به ویژه، ماژول‌های \fIبومی\fR پیوندیافته نمادین ممکن است در صورتی که از بیش از یک مکان در درخت وابستگی پیوند شده باشند در بارگذاری شکست بخورند (Node.js آن‌ها را به عنوان دو ماژول جداگانه می‌بیند و تلاش می‌کند ماژول را چندین بار بارگذاری کند که منجر به صدور استثنا می‌شود). فلگ \fB--preserve-symlinks\fR روی ماژول اصلی اعمال نمی‌شود که این اجازه می‌دهد \fBnode --preserve-symlinks node_module/.bin/\fR کار کند. برای اعمال همین رفتار برای ماژول اصلی، از \fB--preserve-symlinks-main\fR نیز استفاده کنید. . .It Fl -preserve-symlinks-main به لودر ماژول دستور می‌دهد تا هنگام حل و کش کردن ماژول اصلی (\fBrequire.main\fR)، پیوندهای نمادین را حفظ کند. این فلگ وجود دارد تا ماژول اصلی بتواند رفتاری مشابه با آنچه \fB--preserve-symlinks\fR برای همه ایمپورت‌های دیگر فراهم می‌کند داشته باشد؛ اما برای سازگاری عقروعلی با نسخه‌های قدیمی‌تر Node.js، این‌ها فلگ‌های جداگانه‌ای هستند. گزینه \fB--preserve-symlinks-main\fR متضمن \fB--preserve-symlinks\fR نیست؛ زمانی که تمایلی به دنبال کردن پیوندهای نمادین پیش از حل مسیرهای نسبی ندارید، از \fB--preserve-symlinks-main\fR علاوه بر \fB--preserve-symlinks\fR استفاده کنید. برای اطلاعات بیشتر \fB--preserve-symlinks\fR را ببینید. . .It Fl p , Fl -print Ar "script" مشابه \fB-e\fR است اما نتیجه را چاپ می‌کند. . .It Fl -prof تولید خروجی پروفایلر V8. . .It Fl -prof-process پردازش خروجی پروفایلر V8 تولیدشده با استفاده از گزینه \fB--prof\fR در V8. . .It Fl -redirect-warnings Ns = Ns Ar file هشدارهای فرایند را به جای چاپ در stderr در فایل ارائه‌شده می‌نویسد. اگر فایل وجود نداشته باشد ایجاد می‌شود، و اگر وجود داشته باشد به انتهای آن افزوده خواهد شد. اگر هنگام تلاش برای نوشتن هشدار در فایل خطایی رخ دهد، هشدار به جای آن در stderr نوشته خواهد شد. نام \fBfile\fR می‌تواند یک مسیر مطلق باشد. اگر نباشد، دایرکتوری پیش‌فرضی که در آن نوشته می‌شود توسط گزینه خط فرمان \fB--diagnostic-dir\fR کنترل می‌شود. . .It Fl -report-compact گزارش‌ها را در فرمتی فشرده به صورت JSON تک‌خطی می‌نویسد که برای سیستم‌های پردازش لاگ نسبت به فرمت چندخطی پیش‌فرض (طراحی‌شده برای خواندن انسان) راحت‌تر قابل مصرف است. . .It Fl -report-dir Ns = Ns Ar directory , Fl -report-directory Ns = Ns Ar directory مکانی که گزارش در آن تولید خواهد شد. . .It Fl -report-exclude-env هنگامی که \fB--report-exclude-env\fR ارسال شود، گزارش تشخیصی تولیدشده حاوی داده‌های \fBenvironmentVariables\fR نخواهد بود. . .It Fl -report-exclude-network حذف \fBheader.networkInterfaces\fR از گزارش تشخیصی. به‌طور پیش‌فرض این گزینه تنظیم نشده است و رابط‌های شبکه گنجانده می‌شوند. . .It Fl -report-filename Ns = Ns Ar filename نام فایلی که گزارش در آن نوشته خواهد شد. اگر نام فایل روی \fB'stdout'\fR یا \fB'stderr'\fR تنظیم شود، گزارش به ترتیب در stdout یا stderr فرایند نوشته می‌شود. . .It Fl -report-on-fatalerror تولید گزارش را در هنگام بروز خطاهای مهلک (خطاهای داخلی درون محیط اجرای Node.js مانند اتمام حافظه) که منجر به توقف برنامه می‌شوند فعال می‌کند. برای بررسی عناصر تشخیصی مختلف مانند هیپ، پشته، وضعیت حلقه رویداد، مصرف منابع و غیره جهت تحلیل خطای مهلک بسیار مفید است. . .It Fl -report-on-signal تولید گزارش را با دریافت سیگنال مشخص‌شده (یا از پیش تعریف‌شده) توسط فرایند در حال اجرای Node.js فعال می‌کند. سیگنال فعال‌کننده گزارش از طریق \fB--report-signal\fR تعیین می‌شود. . .It Fl -report-signal Ns = Ns Ar signal سیگنال تولید گزارش را تنظیم یا بازنشانی می‌کند (در ویندوز پشتیبانی نمی‌شود). سیگنال پیش‌فرض \fBSIGUSR2\fR است. . .It Fl -report-uncaught-exception تولید گزارش را در هنگام خروج فرایند به دلیل یک استثنای مدیریت‌نشده (uncaught exception) فعال می‌کند. برای بررسی پشته جاوااسکریپت همراه با پشته بومی و سایر داده‌های محیط اجرا مفید است. . .It Fl r , Fl -require Ar module ماژول مشخص‌شده را در زمان راه‌اندازی از پیش بارگذاری می‌کند. از قوانین حل ماژول در \fBrequire()\fR پیروی می‌کند. پارامتر \fBmodule\fR می‌تواند یک مسیر به فایل یا نام یک ماژول node باشد. ماژول‌های پیش‌بارگذاری‌شده با \fB--require\fR پیش از ماژول‌های پیش‌بارگذاری‌شده با \fB--import\fR اجرا می‌شوند. ماژول‌ها در ریسمان اصلی و همچنین در تمام ریسمان‌های کارگر، فرایندهای انشعاب‌یافته (forked) یا خوشه‌ای پیش‌بارگذاری می‌شوند. . .It Fl -run یک دستور مشخص را از شیء \fB"scripts"\fR در package.json اجرا می‌کند. اگر \fB"command"\fR ناموجود ارائه شود، اسکریپت‌های موجود را فهرست خواهد کرد. گزینه \fB--run\fR تا دایرکتوری ریشه بالا می‌رود تا یک فایل \fBpackage.json\fR را برای اجرای دستور از آن پیدا کند. گزینه \fB--run\fR مسیر \fB./node_modules/.bin\fR را به ازای هر والدِ دایرکتوری جاری به \fBPATH\fR اضافه می‌کند تا باینری‌ها از پوشه‌های مختلفی که چندین دایرکتوری \fBnode_modules\fR دارند اجرا شوند، چنانچه \fBancestor-folder/node_modules/.bin\fR یک دایرکتوری باشد. گزینه \fB--run\fR دستور را در دایرکتوری حاوی \fBpackage.json\fR مرتبط اجرا می‌کند. برای مثال، دستور زیر اسکریپت \fBtest\fR موجود در \fBpackage.json\fR پوشه جاری را اجرا خواهد کرد: .Bd -literal $ node --run test .Ed همچنین می‌توانید آرگومان‌هایی را به دستور ارسال کنید. هر آرگومانی پس از \fB--\fR به اسکریپت ضمیمه خواهد شد: .Bd -literal $ node --run test -- --verbose .Ed . .It Fl -secure-heap-min Ns = Ns Ar n هنگام استفاده از \fB--secure-heap\fR، فلگ \fB--secure-heap-min\fR حداقل تخصیص را از هیپ امن مشخص می‌کند. حداقل مقدار \fB2\fR است. حداکثر مقدار کوچکترِ بین \fB--secure-heap\fR یا \fB2147483647\fR است. مقدار ارائه‌شده باید توانی از دو باشد. . .It Fl -secure-heap Ns = Ns Ar n یک هیپ امن OpenSSL با اندازه \fBn\fR بایت را مقداردهی اولیه می‌کند. هنگام مقداردهی اولیه، هیپ امن برای انواع خاصی از تخصیص‌ها درون OpenSSL در حین تولید کلید و سایر عملیات‌ها استفاده می‌شود. این برای مثال جهت جلوگیری از نشت اطلاعات حساس ناشی از سرریز یا زیرریز اشاره‌گرها مفید است. هیپ امن اندازه ثابتی دارد و در زمان اجرا قابل تغییر اندازه نیست، بنابراین در صورت استفاده، مهم است که هیپ به اندازه کافی بزرگ انتخاب شود تا همه کاربردهای برنامه را پوشش دهد. اندازه هیپ ارائه‌شده باید توانی از دو باشد. هر مقداری کمتر از 2 هیپ امن را غیرفعال می‌کند. هیپ امن به‌طور پیش‌فرض غیرفعال است. هیپ امن در ویندوز در دسترس نیست. برای جزئیات بیشتر \fBCRYPTO_secure_malloc_init\fR را ببینید. . .It Fl -snapshot-blob Ns = Ns Ar path هنگامی که همراه با \fB--build-snapshot\fR استفاده شود، \fB--snapshot-blob\fR مسیری را مشخص می‌کند که بلاب اسنپ‌شات تولیدشده در آن نوشته می‌شود. در صورت عدم تعیین، بلاب تولیدشده در \fBsnapshot.blob\fR در دایرکتوری کاری جاری نوشته خواهد شد. هنگامی که بدون \fB--build-snapshot\fR استفاده شود، \fB--snapshot-blob\fR مسیری را به بلابی مشخص می‌کند که برای بازیابی وضعیت برنامه استفاده می‌شود. هنگام بارگذاری اسنپ‌شات، Node.js بررسی می‌کند که: .Bl -bullet .It نسخه، معماری و پلتفرم باینری در حال اجرای Node.js دقیقاً مشابه باینری تولیدکننده اسنپ‌شات باشد. .It فلگ‌های V8 و ویژگی‌های CPU با باینری تولیدکننده اسنپ‌شات سازگار باشند. .El اگر مطابقت نداشته باشند، Node.js از بارگذاری اسنپ‌شات خودداری کرده و با کد وضعیت 1 خارج می‌شود. . .It Fl -test اجراکننده تست خط فرمان Node.js را آغاز می‌کند. این فلگ را نمی‌توان با \fB--watch-path\fR، \fB--check\fR، \fB--eval\fR، \fB--interactive\fR یا بازرس ترکیب کرد. برای جزئیات بیشتر، مستندات اجرای آزمایش‌ها از خط فرمان را ببینید. . .It Fl -test-concurrency حداکثر تعداد فایل‌های آزمایشی که CLI اجراکننده آزمون به‌طور همزمان اجرا خواهد کرد. اگر \fB--test-isolation\fR روی \fB'none'\fR تنظیم شده باشد، این فلگ نادیده گرفته شده و همایندی یک خواهد بود. در غیر این صورت، همایندی به‌طور پیش‌فرض برابر با \fBos.availableParallelism() - 1\fR است. . .It Fl -test-coverage-branches Ns = Ns Ar threshold درصد حداقلی از شاخه‌های پوشش‌داده‌شده را الزامی می‌کند. اگر پوشش کد به آستانه مشخص‌شده نرسد، فرایند با کد \fB1\fR خارج خواهد شد. . .It Fl -test-coverage-exclude Excludes specific files from code coverage using a glob pattern, which can match both absolute and relative file paths. This option may be specified multiple times to exclude multiple glob patterns. If both \fB--test-coverage-exclude\fR and \fB--test-coverage-include\fR are provided, files must meet \fBboth\fR criteria to be included in the coverage report. By default all the matching test files are excluded from the coverage report. Specifying this option will override the default behavior. . .It Fl -test-coverage-functions Ns = Ns Ar threshold Require a minimum percent of covered functions. If code coverage does not reach the threshold specified, the process will exit with code \fB1\fR. . .It Fl -test-coverage-include Includes specific files in code coverage using a glob pattern, which can match both absolute and relative file paths. This option may be specified multiple times to include multiple glob patterns. If both \fB--test-coverage-exclude\fR and \fB--test-coverage-include\fR are provided, files must meet \fBboth\fR criteria to be included in the coverage report. . .It Fl -test-coverage-include-all Includes source files that were never loaded by the test run in the coverage report, where they are reported as having zero coverage. Candidate files are searched for in the current working directory, and are subject to the same \fB--test-coverage-include\fR and \fB--test-coverage-exclude\fR filtering as the rest of the report. . .It Fl -test-coverage-lines Ns = Ns Ar threshold Require a minimum percent of covered lines. If code coverage does not reach the threshold specified, the process will exit with code \fB1\fR. . .It Fl -test-force-exit Configures the test runner to exit the process once all known tests have finished executing even if the event loop would otherwise remain active. . .It Fl -test-global-setup Ns = Ns Ar module Specify a module that will be evaluated before all tests are executed and can be used to setup global state or fixtures for tests. See the documentation on global setup and teardown for more details. . .It Fl -test-isolation Ns = Ns Ar mode نوع جداسازی آزمایش مورد استفاده در test runner را پیکربندی می‌کند. هنگامی که \fBmode\fR برابر با \fB'process'\fR باشد، هر فایل تست در یک فرایند فرزند جداگانه اجرا می‌شود. هنگامی که \fBmode\fR برابر با \fB'none'\fR باشد، تمام فایل‌های تست در همان فرایند اجراکننده آزمایش اجرا می‌شوند. حالت پیش‌فرض جداسازی \fB'process'\fR است. این فلگ در صورت عدم وجود فلگ \fB--test\fR نادیده گرفته می‌شود. برای اطلاعات بیشتر بخش مدل اجرای test runner را ببینید. . .It Fl -test-name-pattern یک عبارت باقاعده که اجراکننده آزمایش را پیکربندی می‌کند تا فقط آزمایش‌هایی را اجرا کند که نام آن‌ها با الگوی ارائه‌شده مطابقت دارد. مستندات فیلتر کردن آزمایش‌ها بر اساس نام را برای جزئیات بیشتر ببینید. اگر هر دو گزینه \fB--test-name-pattern\fR و \fB--test-skip-pattern\fR ارائه شوند، آزمایش‌ها برای اجرا باید \fBهر دو\fR شرط را برآورده کنند. . .It Fl -test-only اجراکننده آزمایش را پیکربندی می‌کند تا فقط آزمایش‌های سطح بالایی را اجرا کند که گزینه \fBonly\fR در آن‌ها تنظیم شده است. این فلگ هنگامی که جداسازی تست غیرفعال باشد لازم نیست. . .It Fl -test-random-seed مقدار seed مورد استفاده برای تصادفی‌سازی ترتیب اجرای آزمایش‌ها را تنظیم می‌کند. این مورد هم بر ترتیب اجرای فایل‌های آزمایشی و هم آزمایش‌های صف‌بندی‌شده درون هر فایل اعمال می‌شود. ارائه این فلگ تصادفی‌سازی را حتی بدون \fB--test-randomize\fR به‌طور ضمنی فعال می‌کند. مقدار باید یک عدد صحیح بین \fB0\fR و \fB4294967295\fR باشد. این فلگ را نمی‌توان همراه با \fB--watch\fR یا \fB--test-rerun-failures\fR استفاده کرد. . .It Fl -test-randomize ترتیب اجرای آزمایش‌ها را تصادفی می‌کند. این مورد هم بر ترتیب اجرای فایل‌های آزمایشی و هم آزمایش‌های صف‌بندی‌شده درون هر فایل اعمال می‌شود. این می‌تواند به تشخیص آزمایش‌هایی که به وضعیت مشترک یا ترتیب اجرا وابسته هستند کمک کند. مقدار seed مورد استفاده برای تصادفی‌سازی در خلاصه آزمایش چاپ می‌شود و می‌تواند با \fB--test-random-seed\fR مجدداً استفاده گردد. برای رفتار تفصیلی و مثال‌ها، تصادفی‌سازی ترتیب اجرای آزمایش‌ها را ببینید. این فلگ را نمی‌توان همراه با \fB--watch\fR یا \fB--test-rerun-failures\fR استفاده کرد. . .It Fl -test-reporter یک گزارش‌دهنده آزمایش برای استفاده در حین اجرای تست‌ها. مستندات گزارش‌دهنده‌های آزمون را برای جزئیات بیشتر ببینید. . .It Fl -test-reporter-destination مقصد گزارش‌دهنده آزمایش متناظر. مستندات گزارش‌دهنده‌های آزمون را برای جزئیات بیشتر ببینید. . .It Fl -test-rerun-failures مسیری به یک فایل که به test runner اجازه می‌دهد وضعیت مجموعه آزمایش را بین اجراها ذخیره کند. اجراکننده آزمون از این فایل برای تعیین اینکه کدام آزمایش‌ها قبلاً موفق یا ناموفق بوده‌اند استفاده خواهد کرد، که امکان اجرای مجدد آزمایش‌های ناموفق بدون نیاز به اجرای مجدد کل مجموعه آزمایش را فراهم می‌سازد. اجراکننده آزمایش در صورت عدم وجود این فایل، آن را ایجاد خواهد کرد. مستندات اجرای مجدد تست‌ها را برای جزئیات بیشتر ببینید. . .It Fl -test-shard تکه (shard) مجموعه آزمون برای اجرا در قالب \fB/\fR، که در آن: .Bl -bullet .It \fBindex\fR یک عدد صحیح مثبت، شاخص بخش‌های تقسیم‌شده است. .It \fBtotal\fR یک عدد صحیح مثبت، مجموع بخش‌های تقسیم‌شده است. .El این دستور تمام فایل‌های آزمایشی را به \fBtotal\fR بخش مساوی تقسیم کرده و تنها مواردی را که در بخش \fBindex\fR قرار می‌گیرند اجرا می‌کند. برای مثال، جهت تقسیم مجموعه آزمایش خود به سه بخش، از دستور زیر استفاده کنید: .Bd -literal node --test --test-shard=1/3 node --test --test-shard=2/3 node --test --test-shard=3/3 .Ed . .It Fl -test-skip-pattern یک عبارت باقاعده که اجراکننده آزمون را پیکربندی می‌کند تا از آزمایش‌هایی که نام آن‌ها با الگوی ارائه‌شده مطابقت دارد صرف‌نظر کند. مستندات فیلتر کردن آزمایش‌ها بر اساس نام را برای جزئیات بیشتر ببینید. اگر هر دو گزینه \fB--test-name-pattern\fR و \fB--test-skip-pattern\fR ارائه شوند، آزمایش‌ها برای اجرا باید \fBهر دو\fR شرط را برآورده کنند. . .It Fl -test-timeout تعداد میلی‌ثانیه‌هایی که پس از آن اجرای تست شکست می‌خورد. در صورت عدم تعیین، زیرتست‌ها این مقدار را از والد خود به ارث می‌برند. مقدار پیش‌فرض \fBInfinity\fR است. . .It Fl -test-update-snapshots فایل‌های اسنپ‌شات مورد استفاده توسط اجراکننده آزمایش برای تست اسنپ‌شات را مجدداً تولید می‌کند. . .It Fl -throw-deprecation پرتاب خطا برای هشدارهای منسوخ‌شدگی. . .It Fl -title Ns = Ns Ar title تنظیم \fBprocess.title\fR در زمان راه‌اندازی. . .It Fl -tls-cipher-list Ns = Ns Ar list یک فهرست جایگزین رمزهای پیش‌فرض TLS را مشخص می‌کند. نیازمند آن است که Node.js با پشتیبانی از رمزنگاری (پیش‌فرض) بیلد شده باشد. . .It Fl -tls-keylog Ns = Ns Ar file داده‌های کلید TLS را در یک فایل ثبت می‌کند. داده‌های کلید در قالب \fBSSLKEYLOGFILE\fR مربوط به NSS هستند و می‌توانند توسط نرم‌افزارهایی (مانند Wireshark) برای رمزگشایی ترافیک TLS استفاده شوند. . .It Fl -tls-max-v1.2 تنظیم \fBtls.DEFAULT_MAX_VERSION\fR به 'TLSv1.2'. برای غیرفعال‌سازی پشتیبانی از TLSv1.3 استفاده می‌شود. . .It Fl -tls-max-v1.3 تنظیم پیش‌فرض \fBtls.DEFAULT_MAX_VERSION\fR به 'TLSv1.3'. برای فعال‌سازی پشتیبانی از TLSv1.3 استفاده می‌شود. . .It Fl -tls-min-v1.0 تنظیم پیش‌فرض \fBtls.DEFAULT_MIN_VERSION\fR به 'TLSv1'. برای سازگاری با کلاینت‌ها یا سرورهای قدیمی TLS استفاده می‌شود. . .It Fl -tls-min-v1.1 تنظیم پیش‌فرض \fBtls.DEFAULT_MIN_VERSION\fR به 'TLSv1.1'. برای سازگاری با کلاینت‌ها یا سرورهای قدیمی TLS استفاده می‌شود. . .It Fl -tls-min-v1.2 تنظیم پیش‌فرض \fBtls.DEFAULT_MIN_VERSION\fR به 'TLSv1.2'. این مقدار پیش‌فرض برای نسخه‌های 12.x و بالاتر است، اما گزینه برای سازگاری با نسخه‌های قدیمی‌تر Node.js پشتیبانی می‌شود. . .It Fl -tls-min-v1.3 تنظیم پیش‌فرض \fBtls.DEFAULT_MIN_VERSION\fR به 'TLSv1.3'. برای غیرفعال‌سازی پشتیبانی از TLSv1.2 که به اندازه TLSv1.3 امن نیست استفاده می‌شود. . .It Fl -trace-deprecation چاپ ردگیری پشته برای هشدارهای منسوخ‌شدگی. . .It Fl -trace-env اطلاعات مربوط به هرگونه دسترسی به متغیرهای محیطی در نمونه جاری Node.js را در stderr چاپ می‌کند، از جمله: .Bl -bullet .It خواندن‌هایی از متغیرهای محیطی که Node.js به‌طور داخلی انجام می‌دهد. .It نوشتن‌هایی به صورت \fBprocess.env.KEY = "SOME VALUE"\fR. .It خواندن‌هایی به صورت \fBprocess.env.KEY\fR. .It تعریف‌هایی به صورت \fBObject.defineProperty(process.env, 'KEY', {...})\fR. .It پرس‌وجوهایی به صورت \fBObject.hasOwn(process.env, 'KEY')\fR، \fBprocess.env.hasOwnProperty('KEY')\fR یا \fB'KEY' in process.env\fR. .It حذف‌هایی به صورت \fBdelete process.env.KEY\fR. .It شمارش‌هایی به صورت \fB...process.env\fR یا \fBObject.keys(process.env)\fR. .El تنها نام متغیرهای محیطی که به آن‌ها دسترسی پیدا شده چاپ می‌شوند. مقادیر چاپ نخواهند شد. برای چاپ ردگیری پشته دسترسی، از \fB--trace-env-js-stack\fR یا \fB--trace-env-native-stack\fR استفاده کنید. . .It Fl -trace-env-js-stack علاوه بر عملکرد \fB--trace-env\fR، ردگیری پشته جاوااسکریپتِ دسترسی را نیز چاپ می‌کند. . .It Fl -trace-env-native-stack علاوه بر عملکرد \fB--trace-env\fR، ردگیری پشته بومی دسترسی را نیز چاپ می‌کند. . .It Fl -trace-event-categories فهرستی جداشده با کاما از دسته‌هایی که باید هنگام فعال بودن ردگیری رویدادها با استفاده از \fB--trace-events-enabled\fR ردگیری شوند. . .It Fl -trace-event-file-pattern رشته الگوی مشخص‌کننده مسیر فایل برای داده‌های رویداد ردگیری؛ از \fB${rotation}\fR و \fB${pid}\fR پشتیبانی می‌کند. . .It Fl -trace-events-enabled جمع‌آوری اطلاعات ردگیری رویدادها را فعال می‌کند. . .It Fl -trace-exit هر زمان که یک محیط به صورت پیشگیرانه خارج شود، یعنی با فراخوانی \fBprocess.exit()\fR، یک ردگیری پشته چاپ می‌کند. . .It Fl -trace-require-module Ns = Ns Ar mode اطلاعات مربوط به بارگذاری ماژول‌های ECMAScript با استفاده از \fBrequire()\fR را چاپ می‌کند. هنگامی که \fBmode\fR برابر با \fBall\fR باشد، تمام کاربردها چاپ می‌شوند. هنگامی که \fBmode\fR برابر با \fBno-node-modules\fR باشد، استفاده‌های پوشه \fBnode_modules\fR مستثنی می‌شوند. . .It Fl -trace-sigint یک ردگیری پشته هنگام دریافت SIGINT چاپ می‌کند. . .It Fl -trace-sync-io هر زمان که ورودی/خروجی همگام پس از نخستین دور حلقه رویداد تشخیص داده شود، یک ردگیری پشته چاپ می‌کند. . .It Fl -trace-tls اطلاعات ردگیری بسته‌های TLS را در \fBstderr\fR چاپ می‌کند. می‌توان از آن برای اشکال‌زدایی مشکلات اتصال TLS استفاده کرد. . .It Fl -trace-uncaught چاپ ردگیری پشته برای استثناهای مدیریت‌نشده؛ معمولاً ردگیری پشته مرتبط با ایجاد یک \fBError\fR چاپ می‌شود، در حالی که این گزینه باعث می‌شود Node.js همچنین ردگیری پشته مرتبط با پرتاب مقدار را نیز چاپ کند (که لزوماً نیازی نیست یک نمونه از \fBError\fR باشد). فعال‌سازی این گزینه ممکن است تأثیر منفی بر رفتار زباله‌روبی بگذارد. . .It Fl -trace-warnings چاپ ردگیری پشته برای هشدارهای فرایند (شامل هشدارهای منسوخ‌شدگی). . .It Fl -track-heap-objects ردگیری تخصیص اشیاء هیپ برای اسنپ‌شات‌های هیپ. . .It Fl -unhandled-rejections Ns = Ns Ar mode استفاده از این فلگ اجازه می‌دهد تا تعیین کنید هنگام بروز یک ردشدن مدیریت‌نشده (unhandled rejection) چه اتفاقی بیفتد. یکی از حالت‌های زیر را می‌توان انتخاب کرد: .Bl -bullet .It \fBthrow\fR: انتشار \fBunhandledRejection\fR. اگر این قلاب تنظیم نشده باشد، ردشدن مدیریت‌نشده را به عنوان یک استثنای مدیریت‌نشده مطرح می‌کند. این حالت پیش‌فرض است. .It \fBstrict\fR: ردشدن مدیریت‌نشده را به عنوان یک استثنای مدیریت‌نشده مطرح می‌کند. اگر استثنا مدیریت شود، \fBunhandledRejection\fR منتشر می‌شود. .It \fBwarn\fR: همیشه یک هشدار را تحریک می‌کند، چه قلاب \fBunhandledRejection\fR تنظیم شده باشد چه نباشد، اما هشدار منسوخ‌شدگی را چاپ نمی‌کند. .It \fBwarn-with-error-code\fR: انتشار \fBunhandledRejection\fR. اگر این قلاب تنظیم نشده باشد، یک هشدار صادر کرده و کد خروج فرایند را به 1 تنظیم می‌کند. .It \fBnone\fR: تمام هشدارها را بی‌صدا می‌کند. .El اگر یک ردشدن در طول مرحله بارگذاری ایستای ماژول ES در نقطه ورود خط فرمان رخ دهد، همیشه آن را به عنوان یک استثنای مدیریت‌نشده مطرح خواهد کرد. . .It Fl -use-bundled-ca , Fl -use-openssl-ca استفاده از مخزن CA موزیلا ارائه‌شده همراه با نسخه جاری Node.js یا استفاده از مخزن پیش‌فرض CA در OpenSSL. مخزن پیش‌فرض در زمان بیلد قابل انتخاب است. مخزن CA همراه با برنامه، آن‌گونه که توسط Node.js عرضه می‌شود، یک اسنپ‌شات از مخزن CA موزیلا است که در زمان انتشار تثبیت شده است. این در تمام پلتفرم‌های پشتیبانی‌شده یکسان است. استفاده از مخزن OpenSSL اجازه اصلاحات خارجی در مخزن را می‌دهد. برای بیشتر توزیع‌های لینوکس و BSD، این مخزن توسط نگه‌دارندگان توزیع و مدیران سیستم نگهداری می‌شود. مکان مخزن CA در OpenSSL به پیکربندی کتابخانه OpenSSL وابسته است اما می‌توان آن را در زمان اجرا با استفاده از متغیرهای محیطی تغییر داد. بخش‌های \fBSSL_CERT_DIR\fR و \fBSSL_CERT_FILE\fR را ببینید. . .It Fl -use-env-proxy هنگام فعال بودن، Node.js متغیرهای محیطی \fBHTTP_PROXY\fR، \fBHTTPS_PROXY\fR و \fBNO_PROXY\fR را در حین راه‌اندازی تجزیه کرده و درخواست‌ها را از طریق پروکسی مشخص‌شده هدایت می‌کند. تنها با پروکسی‌هایی استفاده کنید که برای استقرار مورد اعتماد و مجاز هستند. پشتیبانی از پروکسی برای دسترسی به شبکه‌های خارجی از طریق سرورهای پروکسی مجاز در نظر گرفته شده است، برای مثال هنگامی که فایروال به آن نیاز دارد. این برای پنهان کردن ترافیک یا دور زدن خط‌مشی شبکه نیست. بخش Built-in Proxy Support را ببینید. این معادل با تنظیم متغیر محیطی \fBNODE_USE_ENV_PROXY=1\fR است. هنگام تنظیم هر دو، گزینه \fB--use-env-proxy\fR اولویت دارد. . .It Fl -use-largepages Ns = Ns Ar mode نگاشت مجدد کد استاتیک Node.js به صفحات بزرگ حافظه در زمان راه‌اندازی. در صورت پشتیبانی در سیستم هدف، این باعث می‌شود که کد استاتیک Node.js به جای صفحات 4 KiB به صفحات 2 MiB منتقل شود. مقادیر زیر برای \fBmode\fR معتبر هستند: .Bl -bullet .It \fBoff\fR: هیچ نگاشتی انجام نخواهد شد. این حالت پیش‌فرض است. .It \fBon\fR: در صورت پشتیبانی سیستم‌عامل، نگاشت انجام خواهد شد. عدم موفقیت در نگاشت نادیده گرفته شده و پیامی در خطای استاندارد چاپ می‌شود. .It \fBsilent\fR: در صورت پشتیبانی سیستم‌عامل، نگاشت انجام خواهد شد. عدم موفقیت در نگاشت نادیده گرفته شده و گزارش نخواهد شد. .El . .It Fl -use-system-ca نودجی‌اس از گواهی‌های CA مورد اعتماد موجود در مخزن سیستم همراه با گزینه \fB--use-bundled-ca\fR و متغیر محیطی \fBNODE_EXTRA_CA_CERTS\fR استفاده می‌کند. در پلتفرم‌هایی غیر از ویندوز و macOS، این گزینه گواهی‌ها را از دایرکتوری و فایل مورد اعتماد توسط OpenSSL بارگذاری می‌کند، مشابه با \fB--use-openssl-ca\fR، با این تفاوت که پس از نخستین بارگذاری گواهی‌ها را کش می‌کند. در ویندوز و macOS، خط‌مشی اعتماد به گواهی مشابه خط‌مشی Chromium برای گواهی‌های محلی مورد اعتماد است، اما با تفاوت‌هایی: در macOS تنظیمات زیر رعایت می‌شوند: .Bl -bullet .It دسته‌کلیدهای پیش‌فرض و سیستمی (Default and System Keychains).Bl -bullet .It اعتماد:.Bl -bullet .It هر گواهی که فلگ “When using this certificate” آن روی “Always Trust” تنظیم شده باشد، یا .It هر گواهی که فلگ “Secure Sockets Layer (SSL)” آن روی “Always Trust” تنظیم شده باشد. .El .It گواهی همچنین باید معتبر بوده و "X.509 Basic Policy" آن روی “Always Trust” تنظیم باشد. .El .El در ویندوز تنظیمات زیر رعایت می‌شوند: .Bl -bullet .It ماشین محلی (قابل دسترسی از طریق \fBcertlm.msc\fR).Bl -bullet .It اعتماد:.Bl -bullet .It مراجع صدور گواهی ریشه معتمد (Trusted Root Certification Authorities) .It افراد معتمد (Trusted People) .It Enterprise Trust -> Enterprise -> Trusted Root Certification Authorities .It Enterprise Trust -> Enterprise -> Trusted People .It Enterprise Trust -> Group Policy -> Trusted Root Certification Authorities .It Enterprise Trust -> Group Policy -> Trusted People .El .El .It کاربر جاری (قابل دسترسی از طریق \fBcertmgr.msc\fR).Bl -bullet .It اعتماد:.Bl -bullet .It مراجع صدور گواهی ریشه معتمد .It Enterprise Trust -> Group Policy -> Trusted Root Certification Authorities .El .El .El در ویندوز و macOS، پیش از استفاده از گواهی‌های معتمد، Node.js بررسی می‌کند که تنظیمات کاربر برای آن‌ها مانع از احراز هویت سرور TLS نباشد. نودجی‌اس در حال حاضر از عدم اعتماد/ابطال گواهی‌ها از منبعی دیگر بر اساس تنظیمات سیستم پشتیبانی نمی‌کند. در سایر سیستم‌ها، Node.js گواهی‌ها را از فایل گواهی پیش‌فرض (معمولاً \fB/etc/ssl/cert.pem\fR) و دایرکتوری گواهی پیش‌فرض (معمولاً \fB/etc/ssl/certs\fR) که نسخه OpenSSL لینک‌شده به Node.js می‌شناسد بارگذاری می‌کند. این رفتار معمولاً با عرف توزیع‌های عمده لینوکس و سایر سیستم‌های شبه‌یونیکس سازگار است. اگر متغیرهای محیطی بازنویس‌کننده OpenSSL (معمولاً \fBSSL_CERT_FILE\fR و \fBSSL_CERT_DIR\fR، بسته به پیکربندی OpenSSL لینک‌شده به Node.js) تنظیم شده باشند، مسیرهای مشخص‌شده به جای آن برای بارگذاری گواهی‌ها استفاده می‌شوند. این متغیرهای محیطی می‌توانند به عنوان راه‌حل‌های موقت در صورتی که مسیرهای متداول به دلیلی با پیکربندی سیستم کاربر ناسازگار باشند، استفاده شوند. . .It Fl -v8-options چاپ گزینه‌های خط فرمان V8. . .It Fl -v8-pool-size Ns = Ns Ar num اندازه مخزن ریسمان‌های V8 را تنظیم می‌کند که برای تخصیص کارهای پس‌زمینه استفاده خواهد شد. اگر روی \fB0\fR تنظیم شود، Node.js اندازه مناسب مخزن ریسمان‌ها را بر اساس برآوردی از میزان موازی‌سازی انتخاب خواهد کرد. میزان موازی‌سازی به تعداد محاسباتی اشاره دارد که می‌توانند به‌طور همزمان در یک ماشین معین انجام شوند. به‌طور کلی، این مقدار همان تعداد CPUها است، اما ممکن است در محیط‌هایی مانند ماشین‌های مجازی یا کانتینرها تفاوت داشته باشد. . .It Fl v , Fl -version چاپ نسخه node. . .It Fl -watch راه‌اندازی Node.js در حالت نظارت (watch mode). هنگامی که در حالت نظارت است، تغییرات در فایل‌های تحت نظارت موجب راه‌اندازی مجدد فرایند Node.js می‌شود. به‌طور پیش‌فرض، حالت نظارت نقطه ورود و هر ماژول فراخوانی‌شده یا واردشده را تحت نظارت قرار می‌دهد. از \fB--watch-path\fR برای تعیین مسیرهای تحت نظارت استفاده کنید. این فلگ را نمی‌توان با \fB--check\fR، \fB--eval\fR، \fB--interactive\fR یا REPL ترکیب کرد. نکته: فلگ \fB--watch\fR نیازمند یک مسیر فایل به عنوان آرگومان است و با \fB--run\fR یا ورودی اسکریپت درون‌خطی ناسازگار است، زیرا \fB--run\fR اولویت داشته و حالت نظارت را نادیده می‌گیرد. اگر هیچ فایلی ارائه نشود، Node.js با کد وضعیت \fB9\fR خارج خواهد شد. .Bd -literal node --watch index.js .Ed . .It Fl -watch-kill-signal سیگنال ارسال‌شده به فرایند در زمان راه‌اندازی مجدد در حالت نظارت را سفارشی‌سازی می‌کند. .Bd -literal node --watch --watch-kill-signal SIGINT test.js .Ed . .It Fl -watch-path راه‌اندازی Node.js در حالت نظارت و تعیین مسیرهای مورد نظر برای نظارت. هنگامی که در حالت نظارت است، تغییرات در مسیرهای تحت نظارت موجب راه‌اندازی مجدد فرایند Node.js می‌شود. این کار نظارت بر ماژول‌های require یا import شده را حتی در ترکیب با \fB--watch\fR خاموش می‌کند. این فلگ را نمی‌توان با \fB--check\fR، \fB--eval\fR، \fB--interactive\fR، \fB--test\fR یا REPL ترکیب کرد. نکته: استفاده از \fB--watch-path\fR به‌طور ضمنی \fB--watch\fR را فعال می‌کند که نیازمند یک مسیر فایل است و با \fB--run\fR ناسازگار است، زیرا \fB--run\fR اولویت داشته و حالت نظارت را نادیده می‌گیرد. .Bd -literal node --watch-path=./src --watch-path=./tests index.js .Ed این گزینه فقط در macOS و ویندوز پشتیبانی می‌شود. استثنای \fBERR_FEATURE_UNAVAILABLE_ON_PLATFORM\fR هنگامی که گزینه در پلتفرمی که از آن پشتیبانی نمی‌کند استفاده شود، صادر خواهد شد. . .It Fl -watch-preserve-output پاک کردن کنسول را هنگامی که حالت نظارت فرایند را دوباره راه‌اندازی می‌کند غیرفعال می‌سازد. .Bd -literal node --watch --watch-preserve-output test.js .Ed . .It Fl -zero-fill-buffers به‌طور خودکار تمام نمونه‌های تازه تخصیص‌یافتهٔ \fBBuffer\fR را با صفر پر می‌کند. . .El . .Sh "محیط (ENVIRONMENT)" .Bl -tag -width 6n .It Ev FORCE_COLOR Ar [1, 2, 3] متغیر محیطی \fBFORCE_COLOR\fR برای فعال‌سازی خروجی رنگی ANSI استفاده می‌شود. مقدار می‌تواند یکی از موارد زیر باشد: .Bl -bullet .It \fB1\fR، \fBtrue\fR یا رشته خالی \fB''\fR برای پشتیبانی از ۱۶ رنگ، .It \fB2\fR برای پشتیبانی از ۲۵۶ رنگ، یا .It \fB3\fR برای پشتیبانی از ۱۶ میلیون رنگ. .El هنگامی که \fBFORCE_COLOR\fR استفاده شود و روی یک مقدار پشتیبانی‌شده تنظیم گردد، هر دو متغیر محیطی \fBNO_COLOR\fR و \fBNODE_DISABLE_COLORS\fR نادیده گرفته می‌شوند. هر مقدار دیگری منجر به غیرفعال شدن خروجی رنگی خواهد شد. . .It Ev NODE_COMPILE_CACHE Ar dir کش کامپایل ماژول را برای نمونه Node.js فعال می‌کند. برای جزئیات، مستندات کش کامپایل ماژول را ببینید. . .It Ev NODE_COMPILE_CACHE_PORTABLE Ar 1 هنگامی که روی 1 تنظیم شود، کش کامپایل ماژول می‌تواند در مکان‌های دایرکتوری مختلف استفاده مجدد شود تا زمانی که ساختار ماژول نسبت به دایرکتوری کش یکسان بماند، و توسط هر کاربری (زیردایرکتوری کش با شناسه کاربر ایجادکننده پسوندگذاری نمی‌شود). . .It Ev NODE_COMPILE_CACHE_READONLY Ar 1 هنگامی که روی 1 تنظیم شود، کش کامپایل ماژول فقط ورودی‌های موجود را از دایرکتوری خود می‌خواند: چیزی در آن نوشته نمی‌شود و در صورت عدم وجود ایجاد نخواهد شد. . .It Ev NODE_DEBUG Ar module[,…] فهرستی جداشده با \fB','\fR از ماژول‌های هسته که باید اطلاعات اشکال‌زدایی را چاپ کنند. . .It Ev NODE_DEBUG_NATIVE Ar module[,…] فهرستی جداشده با \fB','\fR از ماژول‌های هسته ++C که باید اطلاعات اشکال‌زدایی را چاپ کنند. . .It Ev NODE_DISABLE_COLORS Ar 1 هنگامی که تنظیم شود، از رنگ‌ها در REPL استفاده نخواهد شد. . .It Ev NODE_DISABLE_COMPILE_CACHE Ar 1 کش کامپایل ماژول را برای نمونه Node.js غیرفعال می‌کند. برای جزئیات، مستندات کش کامپایل ماژول را ببینید. . .It Ev NODE_EXTRA_CA_CERTS Ar file هنگامی که تنظیم شود، مراجع صدور گواهی ریشه شناخته‌شده (مانند VeriSign) با گواهی‌های اضافی در \fBfile\fR گسترش می‌یابند. فایل باید شامل یک یا چند گواهی معتمد در قالب PEM باشد. در صورتی که فایل مفقود یا ناقص باشد، یک پیام (یک‌بار) با \fBprocess.emitWarning()\fR صادر می‌شود، اما سایر خطاها نادیده گرفته خواهند شد. نه گواهی‌های شناخته‌شده و نه گواهی‌های اضافی زمانی که ویژگی \fBca\fR در گزینه‌ها صراحتاً برای یک کلاینت یا سرور TLS یا HTTPS مشخص شده باشد استفاده نمی‌شوند. این متغیر محیطی هنگامی که \fBnode\fR به صورت setuid root اجرا شود یا دارای قابلیت‌های فایل لینوکس باشد نادیده گرفته می‌شود. متغیر محیطی \fBNODE_EXTRA_CA_CERTS\fR فقط هنگام راه‌اندازی اولیه فرایند Node.js خوانده می‌شود. تغییر مقدار در زمان اجرا با استفاده از \fBprocess.env.NODE_EXTRA_CA_CERTS\fR هیچ تأثیری بر فرایند جاری ندارد. . .It Ev NODE_ICU_DATA Ar file مسیر داده برای داده‌های ICU (شیء \fBIntl\fR). در صورت کامپایل با پشتیبانی small-icu، داده‌های پیوندیافته را گسترش می‌دهد. . .It Ev NODE_NO_WARNINGS Ar 1 هنگامی که روی \fB1\fR تنظیم شود، هشدارهای فرایند بی‌صدا می‌شوند. . .It Ev NODE_OPTIONS Ar options... فهرستی از گزینه‌های خط فرمان که با فاصله جدا شده‌اند. مقادیر \fBoptions...\fR قبل از گزینه‌های خط فرمان تفسیر می‌شوند، بنابراین گزینه‌های خط فرمان بر هر چیزی در \fBoptions...\fR اولویت خواهند داشت یا پس از آن اعمال می‌شوند. Node.js در صورت استفاده از گزینه‌ای که در محیط مجاز نیست، مانند \fB-p\fR یا یک فایل اسکریپت، با خطا خارج می‌شود. اگر مقدار یک گزینه حاوی فاصله باشد، می‌توان با استفاده از علامت نقل‌قول دوگانه آن را اسکیپ کرد: .Bd -literal NODE_OPTIONS='--require "./my path/file.js"' .Ed یک فلگ تک‌گانه ارسال‌شده به عنوان گزینه خط فرمان بر همان فلگ ارسال‌شده در \fBNODE_OPTIONS\fR اولویت خواهد داشت: .Bd -literal # The inspector will be available on port 5555 NODE_OPTIONS='--inspect=localhost:4444' node --inspect=localhost:5555 .Ed فلگی که می‌تواند چندین بار ارسال شود، طوری در نظر گرفته می‌شود که گویی نمونه‌های \fBNODE_OPTIONS\fR آن ابتدا ارسال شده‌اند و سپس نمونه‌های خط فرمان آن: .Bd -literal NODE_OPTIONS='--require "./a.js"' node --require "./b.js" # is equivalent to: node --require "./a.js" --require "./b.js" .Ed گزینه‌های مجاز Node.js در فهرست زیر آمده‌اند. اگر گزینه‌ای از هر دو نوع --XX و --no-XX پشتیبانی کند، هر دو پشتیبانی می‌شوند اما فقط یکی در فهرست زیر گنجانده شده است: .Bl -bullet .It \fB--allow-addons\fR .It \fB--allow-child-process\fR .It \fB--allow-ffi\fR .It \fB--allow-fs-read\fR .It \fB--allow-fs-write\fR .It \fB--allow-inspector\fR .It \fB--allow-net\fR .It \fB--allow-openssl-store\fR .It \fB--allow-wasi\fR .It \fB--allow-worker\fR .It \fB--conditions\fR, \fB-C\fR .It \fB--cpu-prof-dir\fR .It \fB--cpu-prof-interval\fR .It \fB--cpu-prof-name\fR .It \fB--cpu-prof\fR .It \fB--diagnostic-dir\fR .It \fB--disable-proto\fR .It \fB--disable-sigusr1\fR .It \fB--disable-warning\fR .It \fB--disable-wasm-trap-handler\fR .It \fB--dns-result-order\fR .It \fB--enable-fips\fR .It \fB--enable-network-family-autoselection\fR .It \fB--enable-source-maps\fR .It \fB--entry-url\fR .It \fB--experimental-abortcontroller\fR .It \fB--experimental-addon-modules\fR .It \fB--experimental-detect-module\fR .It \fB--experimental-eventsource\fR .It \fB--experimental-ffi\fR .It \fB--experimental-import-meta-resolve\fR .It \fB--experimental-import-text\fR .It \fB--experimental-json-modules\fR .It \fB--experimental-loader\fR .It \fB--experimental-modules\fR .It \fB--experimental-package-map\fR .It \fB--experimental-print-required-tla\fR .It \fB--experimental-quic\fR .It \fB--experimental-require-module\fR .It \fB--experimental-shadow-realm\fR .It \fB--experimental-specifier-resolution\fR .It \fB--experimental-stream-iter\fR .It \fB--experimental-test-isolation\fR .It \fB--experimental-top-level-await\fR .It \fB--experimental-vfs\fR .It \fB--experimental-vm-modules\fR .It \fB--experimental-wasi-unstable-preview1\fR .It \fB--force-context-aware\fR .It \fB--force-fips\fR .It \fB--force-node-api-uncaught-exceptions-policy\fR .It \fB--frozen-intrinsics\fR .It \fB--heap-prof-dir\fR .It \fB--heap-prof-interval\fR .It \fB--heap-prof-name\fR .It \fB--heap-prof\fR .It \fB--heapsnapshot-near-heap-limit\fR .It \fB--heapsnapshot-signal\fR .It \fB--http-parser\fR .It \fB--icu-data-dir\fR .It \fB--import\fR .It \fB--input-type\fR .It \fB--insecure-http-parser\fR .It \fB--inspect-brk\fR .It \fB--inspect-port\fR, \fB--debug-port\fR .It \fB--inspect-publish-uid\fR .It \fB--inspect-wait\fR .It \fB--inspect\fR .It \fB--localstorage-file\fR .It \fB--max-http-header-size\fR .It \fB--max-old-space-size-percentage\fR .It \fB--network-family-autoselection-attempt-timeout\fR .It \fB--no-addons\fR .It \fB--no-async-context-frame\fR .It \fB--no-deprecation\fR .It \fB--no-experimental-global-navigator\fR .It \fB--no-experimental-repl-await\fR .It \fB--no-experimental-sqlite\fR .It \fB--no-experimental-strip-types\fR .It \fB--no-experimental-websocket\fR .It \fB--no-experimental-webstorage\fR .It \fB--no-extra-info-on-fatal-exception\fR .It \fB--no-force-async-hooks-checks\fR .It \fB--no-global-search-paths\fR .It \fB--no-network-family-autoselection\fR .It \fB--no-strip-types\fR .It \fB--no-warnings\fR .It \fB--no-webstorage\fR .It \fB--node-memory-debug\fR .It \fB--openssl-config\fR .It \fB--openssl-legacy-provider\fR .It \fB--openssl-shared-config\fR .It \fB--pending-deprecation\fR .It \fB--permission-audit\fR .It \fB--permission\fR .It \fB--preserve-symlinks-main\fR .It \fB--preserve-symlinks\fR .It \fB--prof-process\fR .It \fB--redirect-warnings\fR .It \fB--report-compact\fR .It \fB--report-dir\fR, \fB--report-directory\fR .It \fB--report-exclude-env\fR .It \fB--report-exclude-network\fR .It \fB--report-filename\fR .It \fB--report-on-fatalerror\fR .It \fB--report-on-signal\fR .It \fB--report-signal\fR .It \fB--report-uncaught-exception\fR .It \fB--require-module\fR .It \fB--require\fR, \fB-r\fR .It \fB--secure-heap-min\fR .It \fB--secure-heap\fR .It \fB--snapshot-blob\fR .It \fB--test-coverage-branches\fR .It \fB--test-coverage-exclude\fR .It \fB--test-coverage-functions\fR .It \fB--test-coverage-include-all\fR .It \fB--test-coverage-include\fR .It \fB--test-coverage-lines\fR .It \fB--test-global-setup\fR .It \fB--test-isolation\fR .It \fB--test-name-pattern\fR .It \fB--test-only\fR .It \fB--test-random-seed\fR .It \fB--test-randomize\fR .It \fB--test-reporter-destination\fR .It \fB--test-reporter\fR .It \fB--test-rerun-failures\fR .It \fB--test-shard\fR .It \fB--test-skip-pattern\fR .It \fB--throw-deprecation\fR .It \fB--title\fR .It \fB--tls-cipher-list\fR .It \fB--tls-keylog\fR .It \fB--tls-max-v1.2\fR .It \fB--tls-max-v1.3\fR .It \fB--tls-min-v1.0\fR .It \fB--tls-min-v1.1\fR .It \fB--tls-min-v1.2\fR .It \fB--tls-min-v1.3\fR .It \fB--trace-deprecation\fR .It \fB--trace-env-js-stack\fR .It \fB--trace-env-native-stack\fR .It \fB--trace-env\fR .It \fB--trace-event-categories\fR .It \fB--trace-event-file-pattern\fR .It \fB--trace-events-enabled\fR .It \fB--trace-exit\fR .It \fB--trace-require-module\fR .It \fB--trace-sigint\fR .It \fB--trace-sync-io\fR .It \fB--trace-tls\fR .It \fB--trace-uncaught\fR .It \fB--trace-warnings\fR .It \fB--track-heap-objects\fR .It \fB--unhandled-rejections\fR .It \fB--use-bundled-ca\fR .It \fB--use-env-proxy\fR .It \fB--use-largepages\fR .It \fB--use-openssl-ca\fR .It \fB--use-system-ca\fR .It \fB--v8-pool-size\fR .It \fB--watch-kill-signal\fR .It \fB--watch-path\fR .It \fB--watch-preserve-output\fR .It \fB--watch\fR .It \fB--zero-fill-buffers\fR .El V8 options that are allowed are: .Bl -bullet .It \fB--abort-on-uncaught-exception\fR .It \fB--disallow-code-generation-from-strings\fR .It \fB--enable-etw-stack-walking\fR .It \fB--expose-gc\fR .It \fB--interpreted-frames-native-stack\fR .It \fB--jitless\fR .It \fB--max-heap-size\fR .It \fB--max-old-space-size\fR .It \fB--max-semi-space-size\fR .It \fB--perf-basic-prof-only-functions\fR .It \fB--perf-basic-prof\fR .It \fB--perf-prof-unwinding-info\fR .It \fB--perf-prof\fR .It \fB--stack-trace-limit\fR .El گزینه‌های \fB--perf-basic-prof-only-functions\fR، \fB--perf-basic-prof\fR، \fB--perf-prof-unwinding-info\fR و \fB--perf-prof\fR تنها روی لینوکس در دسترس هستند. گزینهٔ \fB--enable-etw-stack-walking\fR تنها روی ویندوز در دسترس است. . .It Ev NODE_PATH Ar path[:…] فهرستی جداشده با \fB':'\fR از دایرکتوری‌ها که به مسیر جستجوی ماژول اضافه می‌شوند. در ویندوز، این فهرست با \fB';'\fR جدا می‌شود. . .It Ev NODE_PENDING_DEPRECATION Ar 1 هنگامی که روی \fB1\fR تنظیم شود، هشدارهای منسوخ‌شدگی معلق را صادر می‌کند. هشدارهای منسوخ‌شدگی معلق عموماً با منسوخ‌شدگی‌های زمان اجرا یکسان هستند، با این استثنای قابل توجه که به‌طور پیش‌فرض \fIخاموش\fR هستند و منتشر نمی‌شوند مگر اینکه یا فلگ خط فرمان \fB--pending-deprecation\fR یا متغیر محیطی \fBNODE_PENDING_DEPRECATION=1\fR تنظیم شده باشد. هشدارهای منسوخ‌شدگی معلق برای ارائه نوعی مکانیزم گزینشی "هشدار زودهنگام" استفاده می‌شوند که توسعه‌دهندگان می‌توانند از آن برای تشخیص کاربرد ای‌پی‌آی‌های منسوخ بهره ببرند. . .It Ev NODE_PENDING_PIPE_INSTANCES Ar instances تعداد هندل‌های معلق نمونه‌های پایپ را هنگامی که سرور پایپ در انتظار اتصالات است تنظیم می‌کند. این تنظیم فقط برای ویندوز اعمال می‌شود. . .It Ev NODE_PRESERVE_SYMLINKS Ar 1 هنگامی که روی \fB1\fR تنظیم شود، به لودر ماژول دستور می‌دهد تا هنگام حل و کش کردن ماژول‌ها، پیوندهای نمادین را حفظ کند. . .It Ev NODE_REDIRECT_WARNINGS Ar file هنگامی که تنظیم شود، هشدارهای فرایند به جای چاپ در stderr در فایل ارائه‌شده صادر می‌شوند. اگر فایل وجود نداشته باشد ایجاد شده و اگر وجود داشته باشد به انتهای آن افزوده می‌شود. اگر هنگام تلاش برای نوشتن هشدار در فایل خطایی رخ دهد، هشدار به جای آن در stderr نوشته خواهد شد. این معادل با استفاده از فلگ خط فرمان \fB--redirect-warnings=file\fR است. . .It Ev NODE_REPL_EXTERNAL_MODULE Ar file مسیری به یک ماژول Node.js که به جای REPL توکار بارگذاری خواهد شد. تنظیم این مقدار به یک رشته خالی (\fB''\fR) از REPL توکار استفاده خواهد کرد. . .It Ev NODE_REPL_HISTORY Ar file مسیری به فایل مورد استفاده برای ذخیره تاریخچه ماندگار REPL. مسیر پیش‌فرض \fB~/.node_repl_history\fR است که توسط این متغیر بازنویسی می‌شود. تنظیم مقدار به یک رشته خالی (\fB''\fR یا \fB' '\fR) تاریخچه ماندگار REPL را غیرفعال می‌کند. . .It Ev NODE_SKIP_PLATFORM_CHECK Ar value اگر \fBvalue\fR برابر با \fB'1'\fR باشد، بررسی پلتفرم پشتیبانی‌شده در زمان راه‌اندازی Node.js نادیده گرفته می‌شود. ممکن است Node.js به درستی اجرا نشود. هرگونه مشکلی که در پلتفرم‌های پشتیبانی‌نشده رخ دهد رفع نخواهد شد. . .It Ev NODE_TEST_CONTEXT Ar value اگر \fBvalue\fR برابر با \fB'child'\fR باشد، گزینه‌های test reporter بازنویسی شده و خروجی آزمون در قالب TAP به stdout ارسال می‌شود. اگر هر مقدار دیگری ارائه شود، Node.js هیچ تضمینی درباره قالب گزارش‌دهنده مورد استفاده یا پایداری آن ارائه نمی‌دهد. . .It Ev NODE_TLS_REJECT_UNAUTHORIZED Ar value اگر \fBvalue\fR برابر با \fB'0'\fR باشد، اعتبارسنجی گواهی برای اتصالات TLS غیرفعال می‌شود. این امر TLS و به تبع آن HTTPS را ناامن می‌سازد. استفاده از این متغیر محیطی شدیداً نکوهش می‌شود. . .It Ev NODE_USE_ENV_PROXY Ar 1 هنگام فعال بودن، Node.js متغیرهای محیطی \fBHTTP_PROXY\fR، \fBHTTPS_PROXY\fR و \fBNO_PROXY\fR را در حین راه‌اندازی تجزیه کرده و درخواست‌ها را از طریق پروکسی مشخص‌شده هدایت می‌کند. تنها با پروکسی‌هایی استفاده کنید که برای استقرار مورد اعتماد و مجاز هستند. پشتیبانی از پروکسی برای دسترسی به شبکه‌های خارجی از طریق سرورهای پروکسی مجاز در نظر گرفته شده است، برای مثال هنگامی که یک فایروال به آن نیاز دارد. این برای پنهان کردن ترافیک یا دور زدن خط‌مشی شبکه نیست. بخش Built-in Proxy Support را ببینید. این همچنین می‌تواند با استفاده از فلگ خط فرمان \fB--use-env-proxy\fR فعال شود. هنگامی که هر دو تنظیم شده باشند، \fB--use-env-proxy\fR اولویت دارد. . .It Ev NODE_USE_SYSTEM_CA Ar 1 نودجی‌اس از گواهی‌های CA معتمد موجود در مخزن سیستم همراه با گزینه \fB--use-bundled-ca\fR و متغیر محیطی \fBNODE_EXTRA_CA_CERTS\fR استفاده می‌کند. این همچنین می‌تواند با استفاده از فلگ خط فرمان \fB--use-system-ca\fR فعال شود. هنگامی که هر دو تنظیم شده باشند، \fB--use-system-ca\fR اولویت دارد. . .It Ev NODE_V8_COVERAGE Ar dir هنگامی که تنظیم شود، Node.js شروع به خروجی دادن پوشش کد جاوااسکریپت V8 و داده‌های Source Map به دایرکتوری ارائه‌شده به عنوان آرگومان می‌کند (اطلاعات پوشش به صورت JSON در فایل‌هایی با پیشوند \fBcoverage\fR نوشته می‌شوند). متغیر \fBNODE_V8_COVERAGE\fR به‌طور خودکار به زیرفرایندها انتشار می‌یابد و ابزارسازی برنامه‌هایی را که خانواده توابع \fBchild_process.spawn()\fR را فراخوانی می‌کنند آسان‌تر می‌سازد. \fBNODE_V8_COVERAGE\fR را می‌توان روی یک رشته خالی تنظیم کرد تا از انتشار جلوگیری شود. . .It Ev NO_COLOR Ar متغیر \fBNO_COLOR\fR نام مستعاری برای \fBNODE_DISABLE_COLORS\fR است. مقدار این متغیر محیطی اختیاری است. . .It Ev OPENSSL_CONF Ar file بارگذاری یک فایل پیکربندی OpenSSL در زمان راه‌اندازی. این فایل می‌تواند به عنوان بخشی از پیکربندی حالت FIPS استفاده شود. اگر متغیر روی یک مقدار خالی تنظیم شود، Node.js بدون بارگذاری هیچ فایل پیکربندی OpenSSL شروع به کار می‌کند. این روشی برای گذر از یک فایل پیکربندی پیش‌فرض است که وجود دارد اما قابل خواندن نیست، به عنوان مثال زمانی که \fB/etc/ssl\fR برای کاربری که Node.js تحت آن اجرا می‌شود در دسترس نیست که در غیر این صورت در زمان راه‌اندازی مهلک خواهد بود. در آن حالت هیچ پیکربندی اعمال نمی‌شود، از جمله هرگونه راه‌اندازی حالت FIPS که فایل انجام می‌داده است. اگر گزینه خط فرمان \fB--openssl-config\fR استفاده شود، این متغیر محیطی نادیده گرفته شده و مقدار خالی هیچ تأثیری نخواهد داشت. . .It Ev SSL_CERT_DIR Ar dir اگر \fB--use-openssl-ca\fR فعال باشد، یا اگر \fB--use-system-ca\fR در پلتفرم‌هایی غیر از macOS و ویندوز فعال باشد، این گزینه دایرکتوری حاوی گواهی‌های معتمد OpenSSL را بازنویسی و تنظیم می‌کند. توجه داشته باشید که مگر در صورتی که محیط فرزند صراحتاً تنظیم شود، این متغیر محیطی توسط هر فرایند فرزندی به ارث برده می‌شود و اگر آن‌ها از OpenSSL استفاده کنند، ممکن است باعث شود به همان مراجع صدور گواهی مشابه با node اعتماد کنند. . .It Ev SSL_CERT_FILE Ar file اگر \fB--use-openssl-ca\fR فعال باشد، یا اگر \fB--use-system-ca\fR در پلتفرم‌هایی غیر از macOS و ویندوز فعال باشد، این گزینه فایل حاوی گواهی‌های معتمد OpenSSL را بازنویسی و تنظیم می‌کند. توجه داشته باشید که مگر در صورتی که محیط فرزند صراحتاً تنظیم شود، این متغیر محیطی توسط هر فرایند فرزندی به ارث برده می‌شود و اگر آن‌ها از OpenSSL استفاده کنند، ممکن است باعث شود به همان مراجع صدور گواهی مشابه با node اعتماد کنند. . .It Ev TZ متغیر محیطی \fBTZ\fR برای تعیین پیکربندی منطقه زمانی استفاده می‌شود. اگرچه Node.js از تمام روش‌های گوناگونی که \fBTZ\fR در سایر محیط‌ها پردازش می‌شود پشتیبانی نمی‌کند، اما از شناسه‌های اصلی منطقه زمانی (مانند \fB'Etc/UTC'\fR، \fB'Europe/Paris'\fR یا \fB'America/New_York'\fR) پشتیبانی می‌کند. ممکن است از چند اختصار یا نام مستعار دیگر پشتیبانی کند، اما این‌ها شدیداً نکوهش شده و تضمین نمی‌شوند. .Bd -literal $ TZ=Europe/Dublin node -pe "new Date().toString()" Wed May 12 2021 20:30:48 GMT+0100 (Irish Standard Time) .Ed . .It Ev UV_THREADPOOL_SIZE Ar size تعداد ریسمان‌های مورد استفاده در مخزن ریسمان libuv را روی \fBsize\fR ریسمان تنظیم می‌کند. ای‌پی‌آی‌های سیستمی ناهمگام در صورت امکان توسط Node.js استفاده می‌شوند، اما در جایی که وجود ندارند، از مخزن ریسمان libuv برای ایجاد ای‌پی‌آی‌های ناهمگام node بر پایه ای‌پی‌آی‌های سیستمی همگام استفاده می‌شود. ای‌پی‌آی‌های Node.js که از مخزن ریسمان استفاده می‌کنند عبارتند از: .Bl -bullet .It تمام ای‌پی‌آی‌های \fBfs\fR، به جز ای‌پی‌آی‌های ناظر فایل و مواردی که صراحتاً همگام هستند .It ای‌پی‌آی‌های ناهمگام رمزنگاری مانند \fBcrypto.pbkdf2()\fR، \fBcrypto.scrypt()\fR، \fBcrypto.randomBytes()\fR، \fBcrypto.randomFill()\fR، \fBcrypto.generateKeyPair()\fR .It تابع \fBdns.lookup()\fR .It تمام ای‌پی‌آی‌های \fBzlib\fR، به جز مواردی که صراحتاً همگام هستند .El از آنجا که مخزن ریسمان libuv اندازه ثابتی دارد، بدان معناست که اگر به هر دلیلی هر یک از این ای‌پی‌آی‌ها زمان زیادی ببرد، سایر ای‌پی‌آی‌های (ظاهراً نامرتبط) که در مخزن ریسمان libuv اجرا می‌شوند دچار افت کارایی خواهند شد. برای کاهش این مشکل، یک راه‌حل بالقوه افزایش اندازه مخزن ریسمان libuv با تنظیم متغیر محیطی \fB'UV_THREADPOOL_SIZE'\fR روی مقداری بزرگتر از \fB4\fR (مقدار پیش‌فرض فعلی آن) است. با این حال، تنظیم این مورد از درون فرایند با استفاده از \fBprocess.env.UV_THREADPOOL_SIZE=size\fR تضمین نمی‌شود که کار کند، زیرا مخزن ریسمان به عنوان بخشی از مقداردهی اولیه محیط اجرا بسیار پیش از اجرای کد کاربر ایجاد شده است. برای اطلاعات بیشتر، مستندات مخزن ریسمان libuv را ببینید. . .El . .Sh "اشکالات (BUGS)" اشکالات در GitHub Issues ردیابی می‌شوند: .Sy https://github.com/nodejs/node/issues . .Sh "حق نشر (COPYRIGHT)" حق نشر برای مشارکت‌کنندگان Node.js محفوظ است. نودجی‌اس تحت مجوز MIT در دسترس است. . .Pp نودجی‌اس همچنین شامل کتابخانه‌های خارجی است که تحت مجوزهای گوناگون عرضه شده‌اند. برای مشاهده متن کامل مجوز به نشانی زیر مراجعه کنید: .Sy https://github.com/nodejs/node/blob/HEAD/LICENSE . .Sh "همچنین ببینید (SEE ALSO)" وب‌سایت: .Sy https://nodejs.org . .Pp مستندات: .Sy https://nodejs.org/api . .Pp مخزن گیت‌هاب و ردیاب مشکلات: .Sy https://github.com/nodejs/node