NPM - 添加到 package.json 但不安装
Posted
技术标签:
【中文标题】NPM - 添加到 package.json 但不安装【英文标题】:NPM - Add to package.json but don't install 【发布时间】:2016-11-23 23:16:48 【问题描述】:我想知道是否可以运行一个命令来检查包是否是有效的 npm 包,将其作为依赖项添加到 package.json,但不安装它。
我这样做是因为我在全球范围内安装了某个包,并且需要它用于开源项目。因此,我希望它被包括在内。
【问题讨论】:
没有添加 IIRC 的命令,但您始终可以自己编辑 json。请注意,在 package.json 中有一个包与您require()
在代码中使用该包无关。
我理解这种差异。我希望它在那里,因为我依靠人们在克隆 repo 时运行npm install
。
然后手动添加到package.json
文件即可。
【参考方案1】:
只更新 package.json,没有任何其他副作用的正确方法是:
npm install --save --package-lock-only --no-package-lock <package>
使用--package-lock-only
防止写入node_modules。
--package-lock-only 参数只会更新 package-lock.json,而不是检查 node_modules 和下载 依赖关系。
然后,使用--no-package-lock
来阻止锁文件的创建:
--no-package-lock 参数将阻止 npm 创建 package-lock.json 文件。使用 package-lock 的禁用 npm 运行时 安装时不会自动修剪你的节点模块。
请参阅npm install docs 了解更多信息。
【讨论】:
这太好了,谢谢,但奇怪的是没有更迂回的方式来做到这一点。 显然这是一个错误,它已在 npm 6.9.0 ***.com/a/54741955/1222240 中修复【参考方案2】:我认为你不能用 npm 做到这一点。我查看了文档,但没有找到任何相关信息。
您可以将其用作解决方法:
npm i <package> --save && npm uninstall <package>
希望对你有帮助。
【讨论】:
【参考方案3】:如果你的包是全局安装的,不知道如果你运行npm会不会重新安装:
npm install --save foobar
这就是我将它添加到 package.json 的方法。
【讨论】:
你是说如果包在全球范围内存在,npm 会避开本地安装? 他是这么说的,但他错了。npm install foobar
将在本地安装 foobar
,无论它是否已在全局范围内安装。
对不起,我的不幸回答。 @EmileBergeron 那么如何设置 package.json 以使用已安装在您计算机上的依赖项?无需编辑文件
您为什么不手动编辑文件?它易于编辑...--save
标志只是为了方便。
这不是太痛苦,但如果可以的话,我喜欢避免做两次。打开文件、输入我需要记住的所有文本、犯错误、排除故障等都会导致潜在的时间浪费。以上是关于NPM - 添加到 package.json 但不安装的主要内容,如果未能解决你的问题,请参考以下文章