NODE22(1)

๐Ÿ“ฆ version 22.23.4, in opensuse-leap 16.0

๐Ÿฆ‹ node22(1) ๐Ÿฆ‹

okay so this is the manual page for node22 โ€” server-side JavaScript runtime โ€” and bestie, it is long, so buckle up ๐Ÿซถ

๐ŸŽ€ NAME ๐ŸŽ€

node22 โ€” server-side JavaScript runtime. that's the whole vibe. it runs JavaScript, but not in a browser, and it does it iconically ๐Ÿ‘‘

โœจ SYNOPSIS โœจ

like, here's how you actually invoke it:

node22 [options] [v8-options] [-e string | script.js | -] [--]
       [arguments ...]
node22 inspect [-e string | script.js | - | <host>:<port>] ...
node22 [--v8-options]

three moods. pick your fighter ๐Ÿ’…

๐Ÿ’œ DESCRIPTION ๐Ÿ’œ

so Node.js is a set of libraries for JavaScript which allows it to be used outside of the browser. no window object, no problem. it's primarily focused on creating simple, easy-to-build network clients and servers โ€” like that's literally its whole thing ๐Ÿงš

and listen โ€” execute node22 without any arguments and it just starts a REPL. yes, an interactive one. it's giving "just you and the prompt, bestie" โœจ


๐ŸŒˆ OPTIONS ๐ŸŒˆ

okay this is the big one. every single flag, no skipping, no cap ๐Ÿ”ฅ

  • - โ€” alias for stdin, analogous to the use of - in other command-line utilities. the executed script is read from stdin, and the remaining arguments are passed to the script.
  • -- โ€” indicates the end of command-line options. everything after it gets passed to the script.

and if no script filename or eval/print script was supplied before this, then the next argument will be used as a script filename. iykyk ๐Ÿ’…

  • --abort-on-uncaught-exception โ€” aborting instead of exiting causes a core file to be generated for analysis. dramatic? yes. useful? also yes ๐Ÿฉบ
  • --allow-fs-read โ€” allow file system read access when using the permission model.
  • --allow-fs-write โ€” allow file system write access when using the permission model.
  • --allow-addons โ€” allow using native addons when using the permission model.
  • --allow-child-process โ€” allow spawning process when using the permission model.
  • --allow-wasi โ€” allow execution of WASI when using the permission model.
  • --allow-worker โ€” allow creating worker threads when using the permission model.
  • --completion-bash โ€” print a source-able bash completion script for Node.js. tab-complete slay ๐Ÿš
  • -C, --conditions string โ€” use custom conditional exports conditions. string.
  • --cpu-prof โ€” start the V8 CPU profiler on start up, and write the CPU profile to disk before exit. if --cpu-prof-dir is not specified, the profile will be written to the current working directory with a generated file name ๐Ÿ“Š
  • --cpu-prof-dir โ€” the directory where the CPU profiles generated by --cpu-prof will be placed. the default value is controlled by the --diagnostic-dir command-line option.
  • --cpu-prof-interval โ€” the sampling interval in microseconds for the CPU profiles generated by --cpu-prof. the default is 1000.
  • --cpu-prof-name โ€” file name of the V8 CPU profile generated with --cpu-prof.
  • --diagnostic-dir โ€” set the directory for all diagnostic output files. default is current working directory. set the directory to which all diagnostic output files will be written to. defaults to current working directory. affects the default output directory of: --cpu-prof-dir, --heap-prof-dir, --redirect-warnings. one folder to rule them all ๐Ÿ—‚๏ธ
  • --disable-proto=mode โ€” disable the Object.prototype.__proto__ property. if mode is delete, the property will be removed entirely. if mode is throw, accesses to the property will throw an exception with the code ERR_PROTO_ACCESS. choose your chaos ๐Ÿ’€
  • --disable-wasm-trap-handler=mode โ€” disable trap-handler-based WebAssembly bound checks and fall back to inline bound checks so that WebAssembly can be run with limited virtual memory.
  • --disallow-code-generation-from-strings โ€” make built-in language features like eval and new Function that generate code from strings throw an exception instead. this does not affect the Node.js vm module. (read that again, bestie โ€” vm is exempt ๐Ÿ™ˆ)
  • --enable-fips โ€” enable FIPS-compliant crypto at startup. requires Node.js to be built with ./configure --openssl-fips. no build flag, no FIPS, that's the rule ๐Ÿ”
  • --enable-source-maps โ€” enable Source Map V3 support for stack traces. your stack traces, but make them make sense โœจ
  • --entry-url โ€” interpret the entry point as a URL.
  • --experimental-addon-modules โ€” enable experimental addon module support.
  • --experimental-default-type=type โ€” interpret as either ES modules or CommonJS modules input via --eval or STDIN, when --input-type is unspecified;
  • --experimental-config-file โ€” specifies the configuration file to load.
  • --experimental-default-config-file โ€” enable support for automatically loading node.config.json.
  • --experimental-import-meta-resolve โ€” enable experimental ES modules support for import.meta.resolve().
  • --experimental-loader=module โ€” specify the module to use as a custom module loader.
  • --permission โ€” enable the permission model. (yes it lives down here alphabetically, don't @ me)
  • --experimental-shadow-realm โ€” use this flag to enable ShadowRealm support.
  • --experimental-test-coverage โ€” enable code coverage in the test runner.
  • --experimental-test-isolation=mode โ€” configures the type of test isolation used in the test runner.
  • --experimental-test-module-mocks โ€” enable module mocking in the test runner.
  • --experimental-transform-types โ€” enable transformation of TypeScript-only syntax into JavaScript code.
  • --experimental-eventsource โ€” enable experimental support for the EventSource Web API.
  • --no-experimental-fetch โ€” disable experimental support for the Fetch API.
  • --no-experimental-websocket โ€” disable experimental support for the WebSocket API.
  • --experimental-webstorage โ€” enable experimental support for the Web Storage API.
  • --no-experimental-global-customevent โ€” disable exposition of the CustomEvent on the global scope.
  • --no-experimental-global-webcrypto โ€” disable exposition of the Web Crypto API on the global scope.
  • --no-experimental-repl-await โ€” disable top-level await keyword support in REPL.
  • --no-experimental-sqlite โ€” disable the experimental node:sqlite module.
  • --no-experimental-strip-types โ€” disable experimental type-stripping for TypeScript files.
  • --experimental-vm-modules โ€” enable experimental ES module support in VM module.
  • --experimental-wasi-unstable-preview1 โ€” enable experimental WebAssembly System Interface support. this flag is no longer required as WASI is enabled by default ๐Ÿฆ‹
  • --experimental-inspector-network-resource โ€” enable experimental support for inspector network resources.
  • --force-context-aware โ€” disable loading native addons that are not context-aware.
  • --force-fips โ€” force FIPS-compliant crypto on startup (cannot be disabled from script code). same requirements as --enable-fips. once it's on, it's on ๐Ÿ”’
  • --frozen-intrinsics โ€” enable experimental frozen intrinsics support.
  • --heapsnapshot-near-heap-limit=max_count โ€” generate heap snapshot when the V8 heap usage is approaching the heap limit. no more than the specified number of snapshots will be generated.
  • --heapsnapshot-signal=signal โ€” generate heap snapshot on specified signal.
  • --heap-prof โ€” start the V8 heap profiler on start up, and write the heap profile to disk before exit. if --heap-prof-dir is not specified, the profile will be written to the current working directory with a generated file name ๐Ÿง 
  • --heap-prof-dir โ€” the directory where the heap profiles generated by --heap-prof will be placed. the default value is controlled by the --diagnostic-dir command-line option.
  • --heap-prof-interval โ€” the average sampling interval in bytes for the heap profiles generated by --heap-prof. the default is 512 * 1024.
  • --heap-prof-name โ€” file name of the V8 heap profile generated with --heap-prof.
  • --icu-data-dir=file โ€” specify ICU data load path. overrides NODE_ICU_DATA.
  • --input-type=type โ€” set the module resolution type for input via --eval, --print or STDIN.
  • --inspect-brk=[host:]port โ€” activate inspector on host:port and break at start of user script. breakpoint immediately, main character energy ๐ŸŽฌ
  • --inspect-port=[host:]port โ€” set the host:port to be used when the inspector is activated.
  • --inspect-publish-uid=stderr,http โ€” specify how the inspector WebSocket URL is exposed. valid values are stderr and http. default is stderr,http.
  • --inspect-wait=[host:]port โ€” activate inspector on host:port and wait for debugger to be attached.
  • --inspect=[host:]port โ€” activate inspector on host:port. default is 127.0.0.1:9229.

V8 Inspector integration allows attaching Chrome DevTools and IDEs to Node.js instances for debugging and profiling. it uses the Chrome DevTools Protocol. literally the dream collab ๐Ÿค

  • --insecure-http-parser โ€” use an insecure HTTP parser that accepts invalid HTTP headers. this may allow interoperability with non-conformant HTTP implementations. it may also allow request smuggling and other HTTP attacks that rely on invalid headers being accepted. avoid using this option.
๐Ÿšจ bestie no. i'm serious. avoid using this option. it's right there in the manual. smuggling attacks are not the vibe ๐Ÿ’€
  • --jitless โ€” disable runtime allocation of executable memory. this may be required on some platforms for security reasons. it can also reduce attack surface on other platforms, but the performance impact may be severe.

this flag is inherited from V8 and is subject to change upstream. it may disappear in a non-semver-major release. so don't get too attached ๐Ÿ‘€

  • --localstorage-file=file โ€” the file used to store localStorage data.
  • --max-http-header-size=size โ€” specify the maximum size of HTTP headers in bytes. defaults to 16 KiB.
  • --max-old-space-size-percentage=percentage โ€” sets the maximum memory size of V8's old memory section as a percentage of available system memory. this flag takes precedence over --max-old-space-size when both are specified. the percentage parameter must be a number greater than 0 and up to 100, representing the percentage of available system memory to allocate to the V8 heap.
note: this flag utilizes --max-old-space-size, which may be unreliable on 32-bit platforms due to integer overflow issues. soโ€ฆ 32-bit besties, beware ๐Ÿ˜ญ
  • --napi-modules โ€” this option is a no-op. it is kept for compatibility. it does literally nothing and it's staying. respect the legacy ๐Ÿ’…
  • --no-deprecation โ€” silence deprecation warnings. (ignorance is bliss, apparently)
  • --no-extra-info-on-fatal-exception โ€” hide extra information on fatal exception that causes exit.
  • --no-force-async-hooks-checks โ€” disable runtime checks for async_hooks. these will still be enabled dynamically when async_hooks is enabled.
  • --no-addons โ€” disable the node-addons exports condition as well as disable loading native addons. when --no-addons is specified, calling process.dlopen or requiring a native C++ addon will fail and throw an exception. so like, don't try it ๐Ÿซ 

Okay bestie, buckle up, the flag wall continues ๐Ÿ’… no skipping, we read all of these.

  • --no-global-search-paths โ€” literally just don't search for modules in global paths. that's it, that's the whole vibe ๐Ÿšซ
  • --no-warnings โ€” silences all process warnings, and yes that includes deprecations. quiet mode activated ๐Ÿคซ
  • --node-memory-debug โ€” turns on extra debug checks for memory leaks inside Node.js internals. honestly this is only useful if you're debugging Node.js itself, like the actual runtime. not your app. respect tho ๐Ÿซก
  • --openssl-config=file โ€” loads an OpenSSL configuration file at startup. among other uses, you can use this to enable FIPS-compliant crypto if Node.js was built with ./configure --openssl-fips. fancy ๐Ÿ”
  • --pending-deprecation โ€” emits pending deprecation warnings. the ones that aren't yelling yet, they're just... foreshadowing ๐Ÿ’€
  • --preserve-symlinks โ€” tells the module loader to preserve symbolic links when resolving and caching modules. heads up: this is for modules other than the main module ๐Ÿ‘€
  • --preserve-symlinks-main โ€” same symlink-preserving energy, but specifically for the main module. main character treatment, obviously ๐Ÿ‘‘
  • --prof โ€” generates V8 profiler output. numbers! graphs! performance lore! ๐Ÿ“ˆ
  • --prof-process โ€” processes the V8 profiler output that was generated using the V8 option --prof. the follow-up step, iykyk ๐Ÿ”
  • --redirect-warnings=file โ€” writes process warnings into the given file instead of printing them to stderr. redirect that negativity ๐ŸŽ€
  • --report-compact โ€” writes diagnostic reports in a compact format: single-line JSON. minimal, clean, slay โœจ
  • --report-dir, --report-directory โ€” the location where the diagnostic report gets generated. the file name may be an absolute path. if it's not absolute, then the default directory it gets written to is controlled by the --diagnostic-dir command-line option. path girlies rise ๐Ÿ—‚๏ธ
  • --report-filename โ€” the name of the file the diagnostic report gets written to. name your child ๐Ÿ“
  • --report-on-fatalerror โ€” makes the diagnostic report trigger on fatal errors โ€” and by that we mean internal errors inside the Node.js runtime, like running out of memory โ€” that lead to your application terminating. super useful for inspecting diagnostic data elements like heap, stack, event loop state, resource consumption etc. so you can actually reason about the fatal error. detective mode ๐Ÿ”
  • --report-on-signal โ€” makes a diagnostic report get generated when the running Node.js process receives the specified (or predefined) signal. the default signal is SIGUSR2 ๐Ÿ“ก
  • --report-signal โ€” sets or resets the signal used for diagnostic report generation. not supported on Windows. default signal is SIGUSR2 ๐ŸชŸ๐Ÿšซ
  • --report-uncaught-exception โ€” generates a diagnostic report on un-caught exceptions. great for inspecting your JavaScript stack alongside the native stack and other runtime environment data. the receipts ๐Ÿงพ
  • --secure-heap=n โ€” sets the size of the OpenSSL secure heap. any value less than 2 disables the secure heap. default is 0. the value must be a power of two. rules are rules ๐ŸŒธ
  • --secure-heap-min=n โ€” sets the minimum allocation from the OpenSSL secure heap. default is 2, and again the value must be a power of two. two-pilled ๐Ÿงš
  • --test โ€” starts the Node.js command line test runner. test era begins ๐Ÿงช
  • --test-concurrency โ€” the maximum number of test files that the test runner CLI will execute concurrently. how many at once, bestie ๐Ÿƒโ€โ™€๏ธ
  • --test-coverage-branches=threshold โ€” requires a minimum threshold for branch coverage (0 - 100) ๐ŸŒฟ
  • --test-coverage-exclude โ€” a glob pattern that excludes matching files from the coverage report. not you, girl ๐Ÿ™…โ€โ™€๏ธ
  • --test-coverage-functions=threshold โ€” requires a minimum threshold for function coverage (0 - 100) ๐Ÿงฎ
  • --test-coverage-include โ€” a glob pattern that only includes matching files in the coverage report. this is the VIP list ๐ŸŽŸ๏ธ
  • --test-coverage-lines=threshold โ€” requires a minimum threshold for line coverage (0 - 100) ๐Ÿ“
  • --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. bye, we're done here ๐Ÿ‘‹
  • --test-name-pattern โ€” a regular expression that configures the test runner to only execute tests whose name matches the pattern you gave it. regex girlies, this one's for you ๐Ÿ’œ
  • --test-reporter โ€” a test reporter to use when running tests. pick your narrator ๐ŸŽ™๏ธ
  • --test-reporter-destination โ€” the destination for the corresponding test reporter. where the narration goes ๐Ÿ“ฌ
  • --test-only โ€” configures the test runner to only execute top level tests that have the only option set. exclusive โœจ
  • --test-shard โ€” the test suite shard to execute, in a format of <index>/<total>. divide and conquer ๐Ÿฐ
  • --test-skip-pattern โ€” a regular expression that configures the test runner to skip tests whose name matches the pattern. not invited ๐Ÿšซ
  • --test-timeout โ€” a number of milliseconds after which the test execution will fail. the clock is ticking โฐ
  • --test-update-snapshots โ€” regenerates the snapshot file used by the test runner for snapshot testing. refresh ๐Ÿฆ‹
  • --throw-deprecation โ€” throws errors for deprecations. no more gentle warnings, we're throwing hands ๐Ÿ˜ค
  • --title=title โ€” specify process.title on startup. name your process ๐Ÿ’–
  • --tls-cipher-list=list โ€” specify an alternative default TLS cipher list. requires Node.js to be built with crypto support. (Default) ๐Ÿ”’
  • --tls-keylog=file โ€” logs TLS key material to a file. the key material is in NSS SSLKEYLOGFILE format, and software (such as Wireshark) can use it to decrypt the TLS traffic. yes this is as spicy as it sounds ๐Ÿ•ต๏ธโ€โ™€๏ธ
  • --tls-max-v1.2 โ€” sets the default maxVersion to 'TLSv1.2'. use it to disable support for TLSv1.3 ๐Ÿ”ฝ
  • --tls-max-v1.3 โ€” sets the default maxVersion to 'TLSv1.3'. use it to enable support for TLSv1.3 ๐Ÿ”ผ
  • --tls-min-v1.0 โ€” sets the default minVersion to 'TLSv1'. use for compatibility with old TLS clients or servers ๐Ÿง“
  • --tls-min-v1.1 โ€” sets the default minVersion to 'TLSv1.1'. use for compatibility with old TLS clients or servers ๐Ÿง“
  • --tls-min-v1.2 โ€” sets the default minVersion to 'TLSv1.2'. this is the default for 12.x and later, but the option is supported for compatibility with older Node.js versions ๐Ÿซถ
  • --tls-min-v1.3 โ€” sets the default minVersion to 'TLSv1.3'. use it to disable support for TLSv1.2 in favour of TLSv1.3, which is more secure ๐Ÿ”
  • --trace-atomics-wait โ€” prints short summaries of calls to Atomics.wait(). this flag is deprecated โš ๏ธ
  • --trace-deprecation โ€” prints stack traces for deprecations. show me the receipts ๐Ÿงพ
  • --trace-event-categories categories โ€” a comma-separated list of categories that should be traced when trace event tracing is enabled using --trace-events-enabled ๐Ÿท๏ธ
  • --trace-event-file-pattern pattern โ€” a template string specifying the filepath for the trace event data. it supports ${rotation} and ${pid} ๐ŸŒ€
  • --trace-events-enabled โ€” enables the collection of trace event tracing information. collect the lore ๐Ÿ“š
  • --trace-exit โ€” prints a stack trace whenever an environment is exited proactively, i.e. invoking process.exit() ๐Ÿšช
  • --trace-sigint โ€” prints a stack trace on SIGINT ๐Ÿ›‘
  • --trace-sync-io โ€” prints a stack trace whenever synchronous I/O is detected after the first turn of the event loop. caught in 4k ๐Ÿ˜ญ
  • --trace-tls โ€” prints TLS packet trace information to stderr ๐Ÿ“จ
  • --trace-uncaught โ€” prints stack traces for uncaught exceptions. usually the stack trace associated with the creation of an Error is printed, whereas this makes Node.js also print the stack trace associated with throwing the value (which does not need to be an Error instance). warning: enabling this option may affect garbage collection behavior negatively ๐Ÿ’€
  • --trace-warnings โ€” prints stack traces for process warnings (including deprecations) ๐Ÿชต
  • --track-heap-objects โ€” tracks heap object allocations for heap snapshots. keeping tabs ๐Ÿ‘€
  • --unhandled-rejections=mode โ€” defines the behavior for unhandled rejections. mode can be one of strict (raise an error), warn (enforce warnings) or none (silence warnings) ๐ŸŽš๏ธ
  • --use-bundled-ca, --use-openssl-ca โ€” use the bundled Mozilla CA store as supplied by your current Node.js version, or use OpenSSL's default CA store. the default store is selectable at build-time ๐Ÿ—๏ธ

okay so about the bundled CA store: as supplied by Node.js, it's a snapshot of the Mozilla CA store that's fixed at release time. it's identical on all supported platforms ๐ŸŒ

using the OpenSSL store allows for external modifications of the store. for most Linux and BSD distributions, this store is maintained by the distribution maintainers and system administrators. the OpenSSL CA store location depends on the configuration of the OpenSSL library, but you can alter this at runtime using environment variables ๐Ÿ”ง

see SSL_CERT_DIR and SSL_CERT_FILE ๐Ÿ“‚

  • --use-env-proxy โ€” parses proxy settings from the HTTP_PROXY/HTTPS_PROXY/NO_PROXY environment variables and applies the setting in global HTTP/HTTPS clients ๐ŸŒ
  • --use-system-ca โ€” uses the trusted CA certificates present in the system store, in addition to the certificates in the bundled Mozilla CA store and certificates from NODE_EXTRA_CA_CERTS. on Windows and macOS, it uses system APIs to integrate additional trusted certificates. on other platforms it's similar to --use-openssl-ca, except that it caches the certificates on first load, and the system certificates are added in a complementary manner without replacing certificates from other sources. this flag supersedes --use-openssl-ca ๐Ÿ‘‘
  • --use-largepages=mode โ€” re-maps the Node.js static code to large memory pages at startup. if the target system supports it, this moves the Node.js static code onto 2 MiB pages instead of 4 KiB pages ๐Ÿ˜

mode must be one of these values: off (the default value, meaning do not map), on (map and ignore failure, reporting it to stderr), or silent (map and silently ignore failure) ๐Ÿค

  • --v8-options โ€” prints V8 command-line options โš™๏ธ
  • --v8-pool-size=num โ€” sets V8's thread pool size, which is used to allocate background jobs. if it's set to 0, then V8 will choose an appropriate thread pool size based on the number of online processors. if the value you provide is larger than V8's maximum, then the largest value will be chosen. math ๐Ÿง 
  • --watch โ€” starts Node.js in watch mode. when it's in watch mode, changes in the watched files cause the Node.js process to restart. live, laugh, reload ๐Ÿ”„

Like, by default watch mode is gonna watch the entry point plus any required or imported module. Want more control? Use --watch-path to specify what paths to watch. ๐Ÿ’…

  • --watch-path โ€” Starts Node.js in watch mode and tells it exactly what paths to watch. When you're in watch mode, changes in the watched paths make the Node.js process restart. Heads up though: this turns off watching of required or imported modules, even when you use it together with --watch. So like, pick your fighter. ๐Ÿซถ
  • --watch-kill-signal โ€” Customizes the signal that gets sent to the process on watch mode restarts. You're the one choosing the vibe of the goodbye. โœจ
  • --zero-fill-buffers โ€” Automatically zero-fills every newly allocated Buffer and SlowBuffer instance. Clean slate energy, literally. ๐Ÿงš
  • -c, --check โ€” Checks the script's syntax without executing it. Exits with an error code if the script is invalid. It's giving "read it before you send it" bestie. ๐Ÿ˜ญ
  • -e, --eval string โ€” Evaluate string as JavaScript. Just, like, straight into it.
  • -h, --help โ€” Print command-line options. Ngl the output of this option is less detailed than this document, so if you want the full tea, keep reading. ๐ŸŽ€
  • -i, --interactive โ€” Opens the REPL even if stdin does not appear to be a terminal. Main character behavior: forcing the interaction. ๐Ÿ’…
  • -p, --print string โ€” Identical to -e, but prints the result. So you actually get to see it. Obsessed.
  • -r, --require module โ€” Preloads the specified module at startup. Follows require()'s module resolution rules. module can be either a path to a file, or a Node.js module name. Either way it's coming with you. ๐ŸŒธ
  • -v, --version โ€” Print node's version. The classic "who even am I right now" check. ๐Ÿฆ‹

๐ŸŒˆ ENVIRONMENT ๐ŸŒˆ

The environment variables are literally the backstage pass, bestie. This is where the real customization lives.

  • FORCE_COLOR โ€” Used to enable ANSI colorized output. The value may be one of: 1, true, or an empty string, to indicate 16-color support; 2 to indicate 256-color support; or 3 to indicate 16 million-color support. When used and set to a supported value, both the NO_COLOR and NODE_DISABLE_COLORS environment variables are ignored. Any other value will result in colorized output being disabled. So like, be precise, okay? ๐ŸŒˆ
  • NO_COLOR โ€” Alias for NODE_DISABLE_COLORS. Same energy, shorter name.
  • NODE_COMPILE_CACHE dir โ€” Enable the module compile cache for the Node.js instance. Speed things up, slay. โญ
  • NODE_DEBUG modules... โ€” Comma-separated list of core modules that should print debug information. Turn on the little spy cameras. ๐Ÿ‘‘
  • NODE_DEBUG_NATIVE modules... โ€” Comma-separated list of C++ core modules that should print debug information. Same but for the C++ girlies.
  • NODE_DISABLE_COMPILE_CACHE โ€” Disable the module compile cache for the Node.js instance. Sometimes you just gotta turn it off, no cap.
  • NODE_DISABLE_COLORS โ€” When set to 1, colors will not be used in the REPL. Monochrome moment. ๐Ÿ–ค
  • NODE_EXTRA_CA_CERTS file โ€” When set, the well-known "root" CAs (like VeriSign) will be extended with the extra certificates in file. The file should consist of one or more trusted certificates in PEM format. If file is missing or misformatted, a message will be emitted once using process.emitWarning(), but any errors are otherwise ignored. This environment variable is ignored when node runs as setuid root or has Linux file capabilities set. Also, the NODE_EXTRA_CA_CERTS environment variable is only read when the Node.js process is first launched โ€” changing the value at runtime using process.env.NODE_EXTRA_CA_CERTS has no effect on the current process. So like, commit at boot or don't bother. ๐Ÿ™ˆ
  • NODE_ICU_DATA file โ€” Data path for ICU (Intl object) data. Will extend linked-in data when compiled with small-icu support.
  • NODE_NO_WARNINGS โ€” When set to 1, process warnings are silenced. Shhh. Peace and quiet. ๐Ÿคซ (that's the vibe, anyway)
  • NODE_OPTIONS options... โ€” A space-separated list of command-line options, which are interpreted as if they had been specified on the command line before the actual command (so they can be overridden). Node.js will exit with an error if an option that is not allowed in the environment is used, such as --print or a script file. So, like, not everything gets an invite to this party. ๐ŸŽŸ๏ธ
  • NODE_PATH directories... โ€” A colon-separated list of directories prefixed to the module search path. Point the loader in the right direction. ๐Ÿงญ
  • NODE_PENDING_DEPRECATION โ€” When set to 1, emit pending deprecation warnings. Warning you before it's a whole problem. ๐Ÿ’œ
  • NODE_PENDING_PIPE_INSTANCES โ€” Set the number of pending pipe instance handles when the pipe server is waiting for connections. This setting applies to Windows only. ๐ŸชŸ
  • NODE_PRESERVE_SYMLINKS โ€” When set to 1, the module loader preserves symbolic links when resolving and caching modules. Keeping the shortcuts intact, fr fr.
  • NODE_REDIRECT_WARNINGS file โ€” Write process warnings to the given file instead of printing to stderr. Equivalent to passing --redirect-warnings file on the command line. Diary entry but make it stderr. ๐Ÿ“
  • NODE_REPL_HISTORY file โ€” Path to the file used to store persistent REPL history. The default path is ~/.node_repl_history, which is overridden by this variable. Setting the value to an empty string ("" or " ") will disable persistent REPL history. Ghost mode: enabled. ๐Ÿ‘ป
  • NODE_REPL_EXTERNAL_MODULE file โ€” Path to a Node.js module which will be loaded in place of the built-in REPL. Overriding this value to an empty string ('') will use the built-in REPL. Swap in your custom one, or don't. Your call. ๐Ÿ’…
  • NODE_SKIP_PLATFORM_CHECK โ€” When set to 1, the check for a supported platform is skipped during Node.js startup. Node.js might not execute correctly. Any issues encountered on unsupported platforms will not be fixed. So like, this is your chaotic choice and I'm just the messenger. ๐Ÿ’€
  • NODE_TEST_CONTEXT โ€” When set to 'child', test reporter options will be overridden and test output will be sent to stdout in the TAP format. If any other value is provided, Node.js makes no guarantees about the reporter format used or its stability. Little gremlin variable, honestly.
  • NODE_TLS_REJECT_UNAUTHORIZED โ€” When set to 0, TLS certificate validation is disabled. โš ๏ธ Bestie. That's a security thing. Be careful, okay?
  • NODE_USE_ENV_PROXY โ€” When enabled, Node.js parses the HTTP_PROXY, HTTPS_PROXY and NO_PROXY environment variables during startup, and tunnels requests over the specified proxy. This currently only affects requests sent over fetch(). Support for other built-in http and https methods is under way. So like, it's in its expanding era. ๐Ÿฆ‹
  • NODE_USE_SYSTEM_CA โ€” Similar to --use-system-ca. Use the trusted CA certificates present in the system store, in addition to the certificates in the bundled Mozilla CA store and certificates from NODE_EXTRA_CA_CERTS. Trust everyone legit, basically. ๐Ÿซถ
  • NODE_V8_COVERAGE dir โ€” When set, Node.js writes JavaScript code coverage information to dir. Receipts, but for your code.
  • OPENSSL_CONF file โ€” Load an OpenSSL configuration file on startup. Among other uses, this can be used to enable FIPS-compliant crypto if Node.js is built with ./configure --openssl-fips. If the --openssl-config command-line option is used, this environment variable is ignored. Command line wins, periodt. โญ
  • SSL_CERT_DIR dir โ€” If --use-openssl-ca is enabled, this overrides and sets OpenSSL's directory containing trusted certificates.
  • SSL_CERT_FILE file โ€” If --use-openssl-ca is enabled, this overrides and sets OpenSSL's file containing trusted certificates.
  • TZ โ€” Specify the timezone configuration. Time is a construct, but timezones are real, unfortunately. ๐Ÿ•
  • UV_THREADPOOL_SIZE size โ€” Sets the number of threads used in libuv's threadpool to size. More threads = more chaos = more power, choose wisely. ๐Ÿ”ฅ

๐Ÿ’€ BUGS ๐Ÿ’€

Bugs are tracked in GitHub Issues: https://github.com/nodejs/node/issues

So if something's acting up, that's where the group chat lives. Go report it, bestie โ€” they're actually really nice about it. ๐Ÿ™ˆ


Copyright Node.js contributors. Node.js is available under the MIT license.

Node.js also includes external libraries that are available under a variety of licenses. See https://github.com/nodejs/node/blob/HEAD/LICENSE for the full license text.

Legal stuff but make it readable. ๐Ÿ“œโœจ


๐Ÿ‘‘ SEE ALSO ๐Ÿ‘‘


Okay that's the whole page bestie, you ate that. ๐Ÿ’– This particular vintage is dated 2018 and calls itself NODE(1) โ€” so if you see that footer, you know exactly where you are. Go build something iconic. ๐Ÿฆ‹๐Ÿ’…

๐Ÿ“ฆ where this page comes from