使用package.json在全局和本地安装依赖项
使用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
,其他的应该在本地安装。这有选择吗?
新注意:您可能不希望或不需要这样做。您可能想要做的只是将这些类型的命令依赖项放在build.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
但是如果你真的想要全局安装,你可以在package.json的脚本部分添加一个预安装:
"scripts": {
"preinstall": "npm i -g themodule"
}
所以实际上我的npm安装再次执行npm install ..这很奇怪,但似乎工作。
注意:如果您使用npm
的最常见设置,那么您可能会遇到问题,其中全局Node包安装需要sudo
。一种选择是更改您的npm
配置,因此这不是必需的:
npm config set prefix ~/npm
,将$ HOME / npm / bin添加到$ PATH,将export PATH=$HOME/npm/bin:$PATH
附加到你的~/.bashrc
。