在使用npm安装包时, 有两种模式,一种本地模式(不带参数-g
),一种全局模式。
默认情况下,不带参数-g
的install命令采用的就是本地模式,包将会安装在子目录node_modules
下。Node.js的require在加载模块时会尝试搜寻该目录,因此使用本地模式安装的包可以被直接引用。
如果加了参数-g
,例如:
npm [install/i] -g [packege_name]
npm 会将包安装到系统目录,譬如 /usr/local/lib/node_modules/,同时 package.json 文 件中 bin 字段包含的文件会被链接到 /usr/local/bin/。/usr/local/bin/ 是在PATH 环境变量中默认 定义的,因此就可以直接在命令行中运行 supervisor script.js命令了。
为什么要使用全局模式呢?多数时候并不是因为许多程序都有可能用到它,为了减少多重副本而使用全局模式,而是因为本地模式不会注册 PATH 环境变量。