I saw some tutorial where the command was:
npm install --save
What does the --save
option mean?
I saw some tutorial where the command was:
npm install --save
What does the --save
option mean?
Update npm 5:
As of npm 5.0.0, installed modules are added as a dependency by default, so the --save
option is no longer needed. The other save options still exist and are listed in the documentation for npm install
.
Original answer:
Before version 5, NPM simply installed a package under node_modules
by default. When you were trying to install dependencies for your app/module, you would need to first install them, and then add them (along with the appropriate version number) to the dependencies
section of your package.json
.
The --save
option instructed NPM to include the package inside of the dependencies
section of your package.json
automatically, thus saving you an additional step.
In addition, there are the complementary options --save-dev
and --save-optional
which save the package under devDependencies
and optionalDependencies
, respectively. This is useful when installing development-only packages, like grunt
or your testing library.
npm
help. –
Protostele npm install --help
was used. –
Stradivarius npm help install
, which brings up the man page for npm-install
on my machine. –
Teletypewriter npm install --save
does not update these in the package.json if I'm correct. If someone else wants to do what I did as well, see the next hideous command you can run: cat package.json | sed -E 's/"([a-z -_.])":[ ]*"*",?/\1/g' | sed -E 's/[ ]*["|{|}].*//g' | tr '' ' ' | xargs npm install --save -frbl –
Filia --save --save-exact
or --save-dev --save-exact
to pin the semver range to a particular version, rather than using a caret. Also worth noting is that if you do e.g. npm install sails@balderdashy/sails#master --save --save-exact
, you'll pin the dependency of the most recent commit on the master branch of the specified GitHub repo. –
Veii npm update
will comply with whatever version spec you already have in your package.json (so, it may perform an update, but only to a version that matches the specified pattern). If you want to save the updated version to your package.json, you can pass --save
. –
Teletypewriter npm install -g --save @google-cloud/vision
, it saved into C:\Users\MyName\AppData\Roaming\npm\node_modules
, but it's not added into package.json at all. Any thought? –
Debrief -g
, to add it to your project's package.json. See https://mcmap.net/q/40800/-when-should-i-use-npm-with-quot-g-quot-flag-and-why, docs.npmjs.com/files/folders –
Haematoxylin --save
. –
Limburg Update as of npm 5:
As of npm 5.0.0 (released in May 2017), installed
modules are added as a dependency by default, so the --save
option
is no longer needed.
The other save options still exist and are listed in the documentation
for npm install
.
Original Answer:
To add package in dependencies:
npm install my_dep --save
or
npm install my_dep -S
or
npm i my_dep -S
To add package in devDependencies
npm install my_test_framework --save-dev
or
npm install my_test_framework -D
or
npm i my_test_framework -D
-S
-D
as they must be uppercase. I always make this mistake and npm doesn't complain or add it to package.json –
Bouillon -s
(lowercase) is for the --silent
option, and -d
is for loglevel info which are both valid shortcuts. –
Charity Update as of npm 5:
As of npm 5.0.0, installed modules are added as a dependency by default, so the --save option is no longer needed. The other save options still exist and are listed in the documentation for npm install.
Original answer:
It won't do anything if you don't have a package.json
file. Start by running npm init
to create one. Then calls to npm install --save
or npm install --save-dev
or npm install --save-optional
will update the package.json
to list your dependencies.
npm install --save-dev
first, then npm init and your package.json will be populated. –
Bonnette According to NPM Doc:
So it seems that by running npm install package_name
, the package dependency should be automatically added to package.json, right?
npm config ls -l
shows that by default, save-xxx options are all false, only save is true. –
Gastrostomy You can also use -S
, -D
or -P
which are equivalent of saving the package to an application dependency, a development dependency or production dependency. See more NPM shortcuts below:
-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long
This list of shortcuts can be obtained by running the following command:
npm help 7 config
Now you can use one of npm i
or npm i -S
or npm i -P
to install and save a module as a dependency.
npm i
is the alias of npm install
npm i
is equal to npm install
, meaning the default save module as a dependency;npm i -S
is equal to npm install --save
(npm v5-)npm i -P
is equal to npm install --save-prod
(npm v5+)npm -v
6.14.4
npm -h
Usage: npm <command>
where <command> is one of:
access, adduser, audit, bin, bugs, c, cache, ci, cit,
clean-install, clean-install-test, completion, config,
create, ddp, dedupe, deprecate, dist-tag, docs, doctor,
edit, explore, fund, get, help, help-search, hook, i, init,
install, install-ci-test, install-test, it, link, list, ln,
login, logout, ls, org, outdated, owner, pack, ping, prefix,
profile, prune, publish, rb, rebuild, repo, restart, root,
run, run-script, s, se, search, set, shrinkwrap, star,
stars, start, stop, t, team, test, token, tst, un,
uninstall, unpublish, unstar, up, update, v, version, view,
whoami
npm <command> -h quick help on <command>
npm -l display full usage info
npm help <term> search for help on <term>
npm help npm involved overview
Specify configs in the ini-formatted file:
/Users/xgqfrms-mbp/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config
[email protected] /Users/xgqfrms-mbp/.nvm/versions/node/v12.18.0/lib/node_modules/npm
npm help install
alias npm -h i
npm help install
# OR, alias
npm -h i
Output:
npm install (with no args, in package dir)
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <alias>@npm:<name>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>
aliases: i, isntall, add
common options: [--save-prod|--save-dev|--save-optional] [--save-exact] [--no-save]
➜ ~
Use:
npm install package_x --save
The given package (package_x) will be saved in file package.json inside dependencies.
If you add
npm install <<package_x>> --save-dev
then it will be saved inside devDependencies.
As of npm 5, it is more favorable to use --save-prod
(or -P
) than --save
but doing the same thing, as is stated in npm install. So far, --save
still works if provided.
As of npm 5, npm will now save by default.
In case, if you would like npm to work in a similar old fashion (no autosave) to how it was working in previous versions, you can update the config option to enable autosave as below.
npm config set save false
To get the current setting, you can execute the following command:
npm config get save
–npm install --save or -S: When the following command is used with npm install, this will save all your installed core packages into the dependency section in the package.json file. Core dependencies are those packages without which your application will not give the desired results.
But as mentioned earlier, it is an unnecessary feature in the npm 5.0.0 version onwards.
npm install --save
npm install --save
or npm install --save-dev
is why we choose one option between these two, while installing the package in our project.
Things are clear from the previous answers that npm install --save
will add an entry in the dependency
field in the package.json file and other one in dev-dependency
.
So the question arises: Why do we need an entry of our installing module in package.json file, because whenever we check in code in Git or giving our code to someone, we always give it or check it without the node_modules folder, because it is very large in size and is also available at a common place, so to avoid this, we do that.
So then how another person will get all the modules that is specifically or needed for that project so answers is from the package.json file that have the entry of all the required packages for running or developing that project.
So after getting the code we simply need to run the npm install
command. It will read the package.json file and install the necessary required packages.
npm i (Package name) --save
Simply, using the above command we’ll not need to write the package name in your package.json file, it’ll auto add its name and dependency with version that you’ll need at time when you go for production or set up another time.
npm help install
The above command will help to find out more options and correct def.shown in the picture:
The easier (and more awesome) way to add dependencies to your package.json is to do so from the command line, flagging the npm install command with either --save or --save-dev, depending on how you'd like to use that dependency.
In npm version 4, if you run the command npm install express
without the --save
or --save-dev
flags, npm will still install the express
package, but it will not add it to the dependencies
or devDependencies
section of your package.json
file.
To explicitly save the dependency in the package.json
file, you should use the --save
flag:
npm install express --save
If you don't use the --save
flag, the package will be installed locally in the node_modules
directory, but the information about the dependency won't be added to the package.json
file.
Starting from npm version 5 and later, npm introduced the automatic saving of dependencies without the need for the --save
flag. If you are using a version of npm that is 5 or later, running npm install express
will automatically add the dependency to the dependencies
section of your package.json
file.
When you are using --save in the npm command to install a package, this means that your project will install those dependencies in the production environment, for example, if you install a library to manage dates.
npm install moment --save
npm i moment -S (same result)
(this is for a production environment)
npm install moment --save--dev
npm i moment -D (same result)
(this is for a development environment)
npm i pdf.js-viewer --save
In npm, the --save flag is used to automatically update the dependencies section of your package.json file with the installed package and its version. It indicates that the package should be added as a dependency of your project. This is particularly useful when you want to keep track of the dependencies used in your project and ensure that others working on the project can easily install the same dependencies.
For example, when you run:
npm i pdf.js-viewer --save
It will install the pdf.js-viewer package and add an entry to your package.json file under the dependencies section, like this:
"dependencies": {
"pdf.js-viewer": "^x.x.x"
}
The ^x.x.x signifies that npm can install any future compatible version of the package when you run npm install in the future.
If you don't include the --save flag when installing a package, npm will still install the package locally, but it won't add it to your package.json file. This means that you won't have an explicit record of the package as a dependency of your project, and others working on the project won't automatically install it when they clone your project or run npm install.
If you're not working in an Angular project, the installation process remains the same. However, the usage and integration of the pdf.js-viewer package may vary depending on the framework or environment you're working with. Make sure to consult the package's documentation for instructions specific to your project setup.
© 2022 - 2024 — McMap. All rights reserved.
npm install (--help | -h | -help ..)
and nothing. – Lorgnon--save
, but I am curious what did it save without--save
before npm 5? global? – Brazenfacednode_modules/
, but not add it to thepackage.json
. This meant you quickly forgot what packages your app was dependent on. Beautiful times. – Reasonable