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.
To add dependencies and devDependencies to a package. json file from the command line, you can install them in the root directory of your package using the --save-prod flag for dependencies (the default behavior of npm install ) or the --save-dev flag for devDependencies.
For npm install specific version, use npm install [package-name]@[version-number]. Use npm view [package-name] version to know the specific latest version of a package available on the npm registry. Use npm list [package-name] to know the specific latest version of an installed package.
By default, npm install will install all modules listed as dependencies in package. json .
json, you can re-run npm init -y and the repository field will be added automatically to your package. json.
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.
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:
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With