我正在向一个package.json
添加依赖项,该package.json
将用作虚拟机配置过程的一部分。因此,我实际上不需要在本地安装模块,因为配置程序将在VM内部为我完成此操作。那么,是否有任何方法可以执行以下操作:
npm install --save <module>
所以它 * 只 * 在package.json
中为模块的最新版本创建一个依赖项,而不实际下载模块或创建一个node_modules
文件夹?--dry-run
选项关闭,因为它不创建node_modules
文件夹,但也不写入package.json
。
目前,我在每次需要更新包时都会手动执行以下操作,然后再重新配置VM:
rm -rf node_modules
其他原因可能包括能够在低带宽的情况下轻松构建package.json
文件,例如网络共享,在这种情况下,您知道最终将需要该模块,但不想腾出带宽。
6条答案
按热度按时间amrnrhlw1#
正在搜索解决方案。未找到,然后创建一个脚本,将依赖项(最新或指定版本)添加到
package.json
文件,跳过安装过程。https://www.npmjs.com/package/add-dependencies
安装
如果不与
npx
一起使用(参见下文):用法
运行:
或与
npx
:其中,
dependencies
是按空格划分的从属关系列表,target
是以下值之一:--dev
/--save-dev
/-D
用于devDependencies
--save-peer
/x1米11英寸用于x1米12英寸1x--optional
/--save-optional
/-O
用于optionalDependencies
如果未传递
target
参数,则依赖项将写入dependencies
。如果未传递
package_file
参数,脚本将在当前工作目录中搜索package.json
文件。使用
--no-overwrite
标志防止package.json
中已有的包被覆盖。示例:
或与
npx
:希望这能帮助到其他人。
nnsrf1az2#
有趣的是,将
--package-lock-only
与--no-package-lock
结合使用似乎可以做到这一点此操作不会创建或更新package-lock.json文件,而只是向package.json添加一个条目
更新
这实际上是一个bug,现在已在npm 6.9.0中修复
https://github.com/npm/cli/pull/146
https://npm.community/t/release-npm-6-9-0/5911
ac1kyiln3#
据我所知,
npm
无法做到这一点。有两个npm包可以完成此操作;这两种方法我都没用过,但也许值得一试:
希望这有帮助!
dphi5xsq4#
当Npm〉8时,正确答案为
npm pkg set
可以更改您当前的package.json参见:https://docs.npmjs.com/cli/v7/commands/npm-pkg
ewm0tg9j5#
我做了一个非常简单的方法来做到这一点。
将以下内容添加到
package.json
的scripts
部分:然后像这样使用它:
我将其命名为
no-dl
-根据需要选择您自己的名称。6ljaweal6#
npm install --save packagename
,然后npm uninstall packagename
(不带--保存标志)完成此操作,尽管创建了一个空的node_modules文件夹