How to npm install to only save dependency to package.json?

给你一囗甜甜゛ 提交于 2019-11-27 13:48:04

问题


I'm adding dependencies to a package.json that will be used as part of a provisioning process for a virtual machine. As such, I don't actually need to install the modules locally since the provisioner will do that for me inside the VM. So is there any way to do the following:

npm install --save <module>

So that it only creates a dependency for the latest version of the module in package.json without actually downloading the module or creating a node_modules folder?

The --dry-run option is close, as it doesn't create a node_modules folder but it also doesn't write to package.json either.

For now, I'm manually doing the following each time I need to update packages before re-provisioning the VM:

rm -rf node_modules

Other reasons for this might include being able to easily build a package.json file in low-bandwidth situations such as tethering, where you know you'll need the module eventually but don't want to spare the bandwidth.


回答1:


There is no way to do that with npm that I'm aware of.

There are two npm packages for doing this; I've never used either of them, but they might be worth a try:

  • https://www.npmjs.com/package/npm-add
  • https://www.npmjs.com/package/adddep

Hope this helps!




回答2:


Interestingly combining --package-lock-only with --no-package-lock seems to do this

npm install --package-lock-only --no-package-lock PACKAGE

This does not create or update the package-lock.json file. Only adds an entry to the package.json

UPDATE

This was actually a bug and is now fixed in npm 6.9.0

https://github.com/npm/cli/pull/146

https://npm.community/t/release-npm-6-9-0/5911




回答3:


Was searching for the solution. Haven't found, then made a script which adds dependencies (latest versions) to the package.json file skipping the installation process.

https://www.npmjs.com/package/npm-add-dependencies

Installation

$ npm install npm-add-dependencies -g

Usage

Go to a directory with the target package.json and run

$ npm-add-dependencies <dependencies> [target]

where dependencies is the list of dependencies divided by space, and target is one of the following:

--dev for devDependencies

--peer for peerDependencies

--bundled for bundledDependencies

--optional for optionalDependencies

If no target argument passed, dependencies are written to dependencies.

Will be glad if it could help someone else.




回答4:


npm install --save packagename then npm uninstall packagename (without --save flag) accomplishes this, though an empty node_modules folder is created



来源:https://stackoverflow.com/questions/40535328/how-to-npm-install-to-only-save-dependency-to-package-json

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!