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.
Was searching for the solution. Haven't found, then made a script which adds dependencies (latest or specified versions) to the package.json
file skipping the installation process.
https://www.npmjs.com/package/add-dependencies
If not using with npx
(see below):
$ npm install add-dependencies [-g]
Run:
$ add-dependencies [package_file] <dependencies> [target] [--no-overwrite]
or with npx
:
$ npx add-dependencies [package_file] <dependencies> [target] [--no-overwrite]
where dependencies
is the list of dependencies divided by space, and target
is one of the following:
--dev
/ --save-dev
/ -D
for devDependencies
--peer
/ --save-peer
/ -P
for peerDependencies
--optional
/ --save-optional
/ -O
for optionalDependencies
If no target
argument passed, dependencies are written to dependencies
.
If no package_file
argument passed, the script searches for a package.json
file within the current working directory.
Use --no-overwrite
flag to prevent already existing packages in package.json
from being overwritten.
Example:
$ add-dependencies /home/user/project/package.json [email protected] [email protected] redux eslint --dev
or with npx
:
$ npx add-dependencies /home/user/project/package.json [email protected] [email protected] redux eslint --dev
Hope this could help someone else.