How to npm install to only save dependency to 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
Installation
If not using with npx
(see below):
$ npm install add-dependencies [-g]
Usage
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
fordevDependencies
--peer
/--save-peer
/-P
forpeerDependencies
--optional
/--save-optional
/-O
foroptionalDependencies
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:
- https://www.npmjs.com/package/npm-add
- https://www.npmjs.com/package/adddep
Hope this helps!
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