-
Notifications
You must be signed in to change notification settings - Fork 30.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
doc: add a cli options doc page #5787
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
# Command Line Options | ||
|
||
<!--type=misc--> | ||
|
||
Node.js comes with a wide variety of CLI options. These options expose built-in | ||
debugging, multiple ways to execute scripts, and other helpful runtime options. | ||
|
||
To view this documentation as a manual page in your terminal, run `man node`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Windows users will most likely get a "command not found" if they run |
||
|
||
|
||
## Synopsis | ||
|
||
`node [options] [v8 options] [script.js | -e "script"] [arguments]` | ||
|
||
`node debug [script.js | -e "script" | <host>:<port>] …` | ||
|
||
`node --v8-options` | ||
|
||
Execute without arguments to start the [REPL][]. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This assumes knowledge in operating a terminal which is mostly fine - maybe we can make this more accessible by adding a line saying: $ node
> Or something like that - I think it's reasonable to assume there are many windows Node users who are not really used to the command line very much. |
||
|
||
_For more info about `node debug`, please see the [debugger][] documentation._ | ||
|
||
|
||
## Options | ||
|
||
### `-v`, `--version` | ||
|
||
Print node's version. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm wondering if these could use sample invocation results? Might be overkill. Also, in terms of copy, shouldn't "node" be "NodeJS" as in "Prints the installed version of NodeJS" or something similar? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Edit: also, examples are a bit much imo. People can just run it to see the results. (And if you don't understand some of the later options like the tls cipher, that means you probably shouldn't be using them... :S) |
||
|
||
|
||
### `-h`, `--help` | ||
|
||
Print node command line options. | ||
The output of this option is less detailed than this document. | ||
|
||
|
||
### `-e`, `--eval "script"` | ||
|
||
Evaluate the following argument as JavaScript. | ||
|
||
|
||
### `-p`, `--print "script"` | ||
|
||
Identical to `-e` but prints the result. | ||
|
||
|
||
### `-c`, `--check` | ||
|
||
Syntax check the script without executing. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It might be a good idea to add some invocations to those and explain what "without executing" means and when it might be useful. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "without executing the script"? |
||
|
||
|
||
### `-i`, `--interactive` | ||
|
||
Opens the REPL even if stdin does not appear to be a terminal. | ||
|
||
|
||
### `-r`, `--require module` | ||
|
||
Preload the specified module at startup. | ||
|
||
Follows `require()`'s module resolution | ||
rules. `module` may be either a path to a file, or a node module name. | ||
|
||
|
||
### `--no-deprecation` | ||
|
||
Silence deprecation warnings. | ||
|
||
|
||
### `--trace-deprecation` | ||
|
||
Print stack traces for deprecations. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's possible to understand what the flag does from this line - but I think that in the official docs it might be a good idea to give a little detail about it - namely that it prints stack trace for warnings logged to the console (and not the deprecations themselves). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This isn't currently true yet? |
||
|
||
|
||
### `--throw-deprecation` | ||
|
||
Throw errors for deprecations. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Tells Node that whenever a deprecated warning is about to be raised (and printed by default), throw an error instead" or something like that perhaps? |
||
|
||
|
||
### `--trace-sync-io` | ||
|
||
Prints a stack trace whenever synchronous I/O is detected after the first turn | ||
of the event loop. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "This is useful for trying to debug performance issues that might stem from using synchronous I/O in Node" maybe? Maybe link to the event loop doc (if that was merged already)? |
||
|
||
|
||
### `--zero-fill-buffers` | ||
|
||
Automatically zero-fills all newly allocated [Buffer][] and [SlowBuffer][] | ||
instances. | ||
|
||
|
||
### `--track-heap-objects` | ||
|
||
Track heap object allocations for heap snapshots. | ||
|
||
|
||
### `--prof-process` | ||
|
||
Process v8 profiler output generated using the v8 option `--prof`. | ||
|
||
|
||
### `--v8-options` | ||
|
||
Print v8 command line options. | ||
|
||
|
||
### `--tls-cipher-list=list` | ||
|
||
Specify an alternative default TLS cipher list. (Requires Node.js to be built | ||
with crypto support. (Default)) | ||
|
||
|
||
### `--enable-fips` | ||
|
||
Enable FIPS-compliant crypto at startup. (Requires Node.js to be built with | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It might be worth mentioning that this is not the case in the default binary builds. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Doesn't have (Default) like the above? |
||
`./configure --openssl-fips`) | ||
|
||
|
||
### `--force-fips` | ||
|
||
Force FIPS-compliant crypto on startup. (Cannot be disabled from script code.) | ||
(Same requirements as `--enable-fips`) | ||
|
||
|
||
### `--icu-data-dir=file` | ||
|
||
Specify ICU data load path. (overrides `NODE_ICU_DATA`) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I assume ICU here stands for "International Components for Unicode" but honestly I'm not sure - a lot of our users don't know what ICU means and it might be useful to link to the docs or the site http://userguide.icu-project.org/ There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I should probably just say it effects the Intl object like I did below for There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, that would help a ton |
||
|
||
|
||
## Environment Variables | ||
|
||
### `NODE_DEBUG=module[,…]` | ||
|
||
`','`-separated list of core modules that should print debug information. | ||
|
||
|
||
### `NODE_PATH=path[:…]` | ||
|
||
`':'`-separated list of directories prefixed to the module search path. | ||
|
||
_Note: on Windows, this is a `';'`-separated list instead._ | ||
|
||
|
||
### `NODE_DISABLE_COLORS=1` | ||
|
||
When set to `1` colors will not be used in the REPL. | ||
|
||
|
||
### `NODE_ICU_DATA=file` | ||
|
||
Data path for ICU (Intl object) data. Will extend linked-in data when compiled | ||
with small-icu support. | ||
|
||
|
||
### `NODE_REPL_HISTORY=file` | ||
|
||
Path to the file used to store the persistent REPL history. The default path is | ||
`~/.node_repl_history`, which is overridden by this variable. Setting the value | ||
to an empty string (`""` or `" "`) disables persistent REPL history. | ||
|
||
|
||
[Buffer]: buffer.html#buffer_buffer | ||
[debugger]: debugger.html | ||
[REPL]: repl.html | ||
[SlowBuffer]: buffer.html#buffer_class_slowbuffer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CLI options -> command line options
perhaps? Are we sure all the users are familiar with the term? Windows users in particular...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was hoping that the title would clarify it, but I suppose I can can do this.