使用 npm 我们可以使用-g选项全局安装模块。我们如何在 package.json 文件中做到这一点?
-g
假设,这些是我在 package.json 文件中的依赖项
"dependencies": { "mongoose": "1.4.0", "node.io" : "0.3.3", "jquery" : "1.5.1", "jsdom" : "0.2.0", "cron" : "0.1.2" }
当我运行时npm install,我只想node.io全局安装,其余的应该在本地安装。有这个选项吗?
npm install
node.io
新说明: 您可能不想或不需要这样做。您可能想要做的只是将用于构建/测试等的这些类型的命令依赖devDependencies项放在 package.json 的部分中。 每当您使用scriptspackage.json 中的某些内容时,您的 devDependencies 命令(在 node_modules/.bin 中)就像它们在您的路径中一样。
devDependencies
scripts
例如:
npm i --save-dev mocha # Install test runner locally npm i --save-dev babel # Install current babel locally
然后在 package.json 中:
// devDependencies has mocha and babel now "scripts": { "test": "mocha", "build": "babel -d lib src", "prepublish": "babel -d lib src" }
然后在您的命令提示符下,您可以运行:
npm run build # finds babel npm test # finds mocha npm publish # will run babel first
新的新注释 :现在我们已经有一段时间了npx,它允许您运行 devDependencies 命令而无需将它们添加到您的scripts部分(如果需要)。例如:
npx
npx webpack
但是 如果你 真的 想全局安装,你可以在 package.json 的脚本部分添加一个预安装:
"scripts": { "preinstall": "npm i -g themodule" }
所以实际上我的 npm install 再次执行 npm install .. 这很奇怪,但似乎有效。
注意: 如果您使用最常见的设置来npm安装全局 Node 包,则可能会遇到问题sudo。一种选择是更改您的npm配置,因此这不是必需的:
npm
sudo
npm config set prefix ~/npm,将 $HOME/npm/bin 添加到 $PATH 通过附加export PATH=$HOME/npm/bin:$PATH到您的~/.bashrc.
npm config set prefix ~/npm
export PATH=$HOME/npm/bin:$PATH
~/.bashrc
另一个可能更好的选择是仅用于nvm管理 Node,您不会遇到这个问题。
nvm