Sov*_*iut 26 node.js npm npm-install
我将依赖项添加到package.json将用作虚拟机配置过程的一部分.因此,我实际上并不需要在本地安装模块,因为供应商会在VM内为我做这件事.那么有什么办法可以做到以下几点:
npm install --save <module>
Run Code Online (Sandbox Code Playgroud)
这样它只会在package.json 不实际下载模块或创建node_modules文件夹的情况下为最新版本的模块创建依赖关系?
该--dry-run选项很接近,因为它不会创建node_modules文件夹,但也不会写入package.json任何文件夹.
现在,每次我需要在重新配置VM之前更新软件包时,我都会手动执行以下操作:
rm -rf node_modules
Run Code Online (Sandbox Code Playgroud)
其他原因可能包括能够package.json在低带宽情况下轻松构建文件,例如网络共享,您知道最终需要该模块但不想节省带宽.
Arf*_*feo 13
正在寻找解决方案。没有找到,然后制作了一个脚本,将依赖项(最新或指定版本)添加到package.json文件中,跳过安装过程。
https://www.npmjs.com/package/add-dependencies
如果不使用 with npx(见下文):
$ npm install add-dependencies [-g]
Run Code Online (Sandbox Code Playgroud)
跑:
$ add-dependencies [package_file] <dependencies> [target] [--no-overwrite]
Run Code Online (Sandbox Code Playgroud)
或与npx:
$ npx add-dependencies [package_file] <dependencies> [target] [--no-overwrite]
Run Code Online (Sandbox Code Playgroud)
其中dependencies是按空间划分的依赖项列表,并且target是以下之一:
--dev/ --save-dev/-D对devDependencies--peer/ --save-peer/-P对peerDependencies--optional/ --save-optional/-O对optionalDependencies如果未target传递任何参数,则将依赖项写入dependencies.
如果未package_file传递任何参数,脚本将package.json在当前工作目录中搜索文件。
使用--no-overwrite标志来防止已经存在的包package.json被覆盖。
例子:
$ add-dependencies /home/user/project/package.json moment@2.0.0 react@16.8 redux eslint --dev
Run Code Online (Sandbox Code Playgroud)
或与npx:
$ npx add-dependencies /home/user/project/package.json moment@2.0.0 react@16.8 redux eslint --dev
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助别人。
npm我知道没有办法做到这一点。
有两个 npm 包可以做到这一点;我从未使用过它们中的任何一个,但它们可能值得一试:
希望这可以帮助!
有趣的是结合--package-lock-only与--no-package-lock似乎做到这一点
npm install --package-lock-only --no-package-lock PACKAGE
Run Code Online (Sandbox Code Playgroud)
这不会创建或更新 package-lock.json 文件。只向 package.json 添加一个条目
更新
这实际上是一个错误,现在已在 npm 6.9.0 中修复
https://github.com/npm/cli/pull/146
https://npm.community/t/release-npm-6-9-0/5911
| 归档时间: |
|
| 查看次数: |
9296 次 |
| 最近记录: |