假设我package.json
的某个地方有:
"dependencies": {
"bower": "1.0.0",
// zillion other dependencies
}
有没有办法让我的package.json
npm安装 bower@1.0.0?像这样:npm install --only bower
。
我的目标是让npm install
和bower install
同时运行。
答案 0 :(得分:6)
作为一种解决方法,您可以使用以下内容:
> node -p -e "require('./package.json').dependencies.bower"
// → 1.0.0
> npm install bower@`node -p -e "require('./package.json').dependencies.bower"`
// → npm install bower@1.0.0
-e/--eval
标志评估传递的字符串,-p/--print
打印eval的结果。
答案 1 :(得分:0)
正如@atalantus在评论中指出的那样,已接受的答案不适用于更新版本的NPM。较新版本(已在NPM 6.13.4上验证)的有效解决方案是:
'links'
这将安装npm install --no-package-lock --no-save bower@1.0.0
及其所有依赖项,但会阻止安装bower
中可能包含的任何其他内容。它还不会创建或修改现有的package.json
。
从npm文档中:
package-lock.json
参数将阻止npm创建package-lock.json文件。在禁用包锁的情况下运行时,npm不会在安装时自动修剪节点模块。
--no-package-lock
:禁止保存到--no-save
。
将此与Anton Rudeshko在dependencies
中查找版本的方法结合起来,最终解决方案是:
package.json