I saw some tutorial where the command was:
npm install --save
What does the --save
option mean?
--save: Package will appear in your dependencies.
npm install (--help | -h | -help ..)
and nothing.
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.
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
https://i.stack.imgur.com/6prDT.png
-S
-D
as they must be uppercase. I always make this mistake and npm doesn't complain or add it to package.json
-s
(lowercase) is for the --silent
option, and -d
is for loglevel info which are both valid shortcuts.
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.
according to NPM Doc
https://i.stack.imgur.com/DX82E.png
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.
You can also use -S
, -D
or -P
which are equivalent of saving the package to an app dependency, a dev dependency or prod 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
npm v6.x update
Now you can be using one of npm i
or npm i -S
or npm i -P
to install and save module as a dependency.
npm i is the alias of npm install
npm i is equal to npm install, means 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+)
check out your npm version
$ npm -v
6.14.4
get npm cli help info
$ 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
npm@6.14.4 /Users/xgqfrms-mbp/.nvm/versions/node/v12.18.0/lib/node_modules/npm
get npm install help
npm help install alias npm -h i
$ npm help install
# OR, alias
# $ npm -h i
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]
➜ ~
refs
https://docs.npmjs.com/cli/install
https://i.stack.imgur.com/h5ZAl.png
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.
npm install package_x --save
The given package (package_x) will be saved in package.json inside dependencies. if you add
npm install <<package_x>> --save-dev
then it will be saved inside devDependencies.
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
Source:https://blog.pusher.com/what-you-need-know-npm-5/
–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 i (Package name) --save
Simplily, using above command we ll not need to write 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 setup another time.
npm help install
https://i.stack.imgur.com/TIcX8.png
npm install --save
or npm install --save-dev
why we choose 1 options between this two while installing package in our project.
things is clear from the above answers that npm install --save
will add entry in the dependency
field in pacakage.json
file and other one in dev-dependency
.
So question arises why we need entry of our installing module in pacakge.json file because whenever we check-in code in git
or giving our code to some one we always give it or check it without node-modules
because it is very large in size and also available at common place so to avoid this we do that.
so then how other 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.
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.
When you are using --save in the npm command to install a package , this means that your project will install that dependencies in the production enviroment, for example if you install a library to manage dates.
npm install moment --save
npm i moment -S (same result)
(this is for production enviroment)
npm install moment --save--dev
npm i moment -D (same result)
(this is for development enviroment)
Success story sharing
npm
help.npm install --help
was used.