On this page

    Loading from the global folders

    History

    If the NODE_PATH environment variable is set to a colon-delimited list of absolute paths, then Node.js will search those paths for modules if they are not found elsewhere.

    On Windows, NODE_PATH is delimited by semicolons (;) instead of colons.

    NODE_PATH was originally created to support loading modules from varying paths before the current module resolution algorithm was defined.

    NODE_PATH is still supported, but is less necessary now that the Node.js ecosystem has settled on a convention for locating dependent modules. Sometimes deployments that rely on NODE_PATH show surprising behavior when people are unaware that NODE_PATH must be set. Sometimes a module's dependencies change, causing a different version (or even a different module) to be loaded as the NODE_PATH is searched.

    Additionally, Node.js will search in the following list of GLOBAL_FOLDERS:

    • 1: $HOME/.node_modules
    • 2: $HOME/.node_libraries
    • 3: $PREFIX/lib/node

    Where $HOME is the user's home directory, and $PREFIX is the Node.js configured node_prefix.

    These are mostly for historic reasons.

    It is strongly encouraged to place dependencies in the local node_modules folder. These will be loaded faster, and more reliably.