假设我的某个地方package.json:
"dependencies": {
"bower": "1.0.0",
// zillion other dependencies
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让npm安装只能从我的bower@1.0.0 package.json?像这样:npm install --only bower.
我的目标是同时制作npm install和bower install运行.
作为一种解决方法,您可以使用以下内容:
> 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
Run Code Online (Sandbox Code Playgroud)
其中-e/--evalflag计算传递的字符串并-p/--print打印eval的结果.
正如@atalantus 在评论中指出的那样,接受的答案不适用于较新版本的 NPM。较新版本的工作解决方案(在 NPM 6.13.4 上验证)是:
npm install --no-package-lock --no-save bower@1.0.0
Run Code Online (Sandbox Code Playgroud)
这将安装bower及其所有依赖项,但会阻止安装您可能在package.json. 它也不会创建或修改现有的package-lock.json.
从 npm 文档:
该
--no-package-lock参数将阻止 npm 创建 package-lock.json 文件。当使用 package-lock 的禁用 npm 运行时,安装时不会自动修剪您的节点模块。
--no-save:防止保存到dependencies.
结合 Anton Rudeshko 在 中找出版本的方法package.json,最终的解决方案是:
VERSION_BOWER=`node -p -e "require('./package.json').dependencies.bower"`
npm install --no-package-lock --no-save bower@"$VERSION_BOWER"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4660 次 |
| 最近记录: |