Node - Node Cli


node is a interactive cli.

When executed without arguments, it will start in a REPL mode


node [options] [ -e script | script.js ] [arguments]
node debug script.js [arguments]
Options Description
-v, –version print Node.js version
-e, –eval script evaluate script
-p, –print evaluate script and print result
-c, –check syntax check script without executing
-i, –interactive always enter the REPL even if stdin does not appear to be a terminal
-r, –require module to preload (option can be repeated)
–no-deprecation silence deprecation warnings
–trace-deprecation show stack traces on deprecations
–throw-deprecation throw an exception anytime a deprecated function is used
–no-warnings silence all process warnings
–trace-warnings show stack traces on process warnings
–trace-sync-io show stack trace when use of sync IO is detected after the first tick
–track-heap-objects track heap object allocations for heap snapshots
–prof-process process v8 profiler output generated using –prof
–zero-fill-buffers automatically zero-fill all newly allocated Buffer and SlowBuffer instances
–v8-options print v8 command line options
–v8-pool-size=num set v8's thread pool size
–tls-cipher-list=val use an alternative default TLS cipher list
–openssl-config=path load OpenSSL configuration file from the specified path
–icu-data-dir=dir set ICU data load path to dir (overrides NODE_ICU_DATA)
–preserve-symlinks preserve symbolic links when resolving and caching modules.
–harmony harmony is a shortcut on old node to enable all the harmony features

Environment variables

Name Description
NODE_PATH ';'-separated list of directories prefixed to the module search path.
NODE_DISABLE_COLORS set to 1 to disable colors in the REPL
NODE_ICU_DATA data path for ICU (Intl object) data
NODE_NO_WARNINGS set to 1 to silence process warnings
NODE_PATH ';'-separated list of directories prefixed to the module search path
NODE_REPL_HISTORY path to the persistent REPL history file


How to known if a file is run directly ?

When a file is run directly from Node.js, require.main is set to its module. That means that it is possible to determine whether a file has been run directly by testing require.main === module.

For a file foo.js, this will be:

  • true if run via node foo.js,
  • false if run by require('./foo').

Documentation / Reference

Powered by ComboStrap