Browse Source

Documenting `require.main`, fixing #997

v0.7.4-release
Trevor Burnham 14 years ago
committed by Ryan Dahl
parent
commit
31ed87b0a9
  1. 15
      doc/api/modules.markdown

15
doc/api/modules.markdown

@ -305,6 +305,21 @@ the same process. As the application stack grows, we tend to assemble
functionality, and it is a problem with those parts interact in ways
that are difficult to predict.
### Accessing the main module
When a file is run directly from Node, `require.main` is set to its
`module`. That means that you can 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`, but
`false` if run by `require('./foo')`.
Because `module` provides a `filename` property (normally equivalent to
`__filename`), the entry point of the current application can be obtained
by checking `require.main.filename`.
## Addenda: Package Manager Tips
The semantics of Node's `require()` function were designed to be general

Loading…
Cancel
Save