从package.json只安装一个包?

时间:2014-03-15 06:49:15

标签: npm

假设我package.json的某个地方有:

"dependencies": {
    "bower": "1.0.0",
    // zillion other dependencies
}

有没有办法让我的package.json npm安装 bower@1.0.0?像这样:npm install --only bower

我的目标是让npm installbower install同时运行。

2 个答案:

答案 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