使用 npm 我们可以使用 -g
选项全局安装模块。我们如何在 package.json 文件中做到这一点?
假设,这些是我在 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
,其余的应该在本地安装。有这个选项吗?
最佳答案
新提示:您可能不想或不需要这样做。您可能想要做的只是将用于构建/测试等的这些类型的命令依赖项放在 package.json 的 devDependencies
部分中。 任何时候你在 package.json 中使用 scripts
中的东西,你的 devDependencies 命令(在 node_modules/.bin 中)就像它们在你的路径中一样。
例如:
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 命令而无需将它们添加到您的 脚本
部分(如果需要)。
例如:
npx webpack
但是如果你真的想全局安装,你可以在 package.json 的脚本部分添加预安装:
"scripts": {
"preinstall": "npm i -g themodule"
}
所以实际上我的 npm install 再次执行 npm install .. 这很奇怪,但似乎有效。
注意:如果您使用最常见的 npm
设置,其中全局 Node 包安装所需的 sudo
,您可能会遇到问题。一种选择是更改您的 npm
配置,这样就没有必要了:
npm config set prefix ~/npm
,通过附加 export PATH=$HOME/npm/bin:$PATH
将 $HOME/npm/bin 添加到 $PATH你的 ~/.bashrc
.
另一个可能更好的选择是只使用 nvm
来管理 Node,你不会遇到这个问题。
关于node.js - 使用 package.json 在全局和本地安装依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480549/