npm install 的 --save 选项是什么?

What is the --save option for npm install?

提问人:Dmitri 提问时间:10/25/2013 最后编辑:DequogDmitri 更新时间:2/12/2023 访问量:1101455

问:

我看到了一些教程,其中的命令是:

npm install --save

该选项是什么意思?--save

节点.js npm

评论

21赞 Gil Epshtain 2/29/2016
您可以使用快捷键 -S 和 -D,其中 -S 是 --save,-D 是 '--save-dev。--save(或简单的 -S):包将出现在您的依赖项中。--save-dev(或简单的 -D):包将出现在 devDependencies 中。
6赞 juliangonzalez 8/17/2016
@WiredPrairie谢谢,我一直在尝试,但什么都没有。npm install (--help | -h | -help ..)
3赞 Erdinc Ay 9/13/2017
@Dmitri,我遇到了同样的问题。来吧 NPM 将其添加到工具的 MAN 页中
190赞 Michael Ekoka 7/5/2018
我不明白决定从文档和帮助页面中删除甚至只是提及此选项而不弃用它背后的理由,至少在工具本身中发出警告。同时,新手可以通过数以百万计的教程接触到它。然后他们试图找出它的作用,并不得不浪费 20 分钟仔细阅读文档,最终在 stackoverflow 上阅读 npm 历史记录。奇怪的是,防止这种大规模浪费时间(如果问题的受欢迎程度有任何迹象的话)是文档的目的之一。
6赞 FMaz008 12/20/2020
@MichaelEkoka我第一次使用 React-Native,它是我用过的最挑剔的开发软件。到目前为止,我已经花了 20 多个小时调试依赖项和零时间编码。太棒了。模块之间没有长期共享视图。它非常混乱,这只是另一个例子。

答:

3509赞 voithos 10/25/2013 #1

更新 npm 5:

npm 5.0.0 开始,默认情况下已安装的模块被添加为依赖项,因此不再需要该选项。其他保存选项仍然存在,并列在 的文档中。--savenpm install

原答案:

在版本 5 之前,NPM 只是默认安装一个包。当您尝试安装应用程序/模块的依赖项时,您需要先安装它们,然后将它们(以及相应的版本号)添加到 .node_modulesdependenciespackage.json

该选项指示 NPM 自动将包包含在 your 的部分中,从而为您节省一个额外的步骤。--savedependenciespackage.json

此外,还有补充选项,它们分别将包保存在 和 下。这在安装仅开发包(如测试库)时很有用。--save-dev--save-optionaldevDependenciesoptionalDependenciesgrunt

评论

229赞 Christian Ternus 10/25/2013
说真的,这在任何地方都有记录吗?我在谷歌或帮助中找不到它。npm
171赞 Mark Stosberg 12/7/2013
如果在使用时出现此文档,那就太好了。npm install --help
18赞 voithos 6/14/2017
@jimsmith:从 npm 5.0 开始,它是默认设置。
3赞 Igor Okorokov 7/3/2017
默认情况下,NPM 5 上的“npm update”会修改package.json吗?
8赞 Igor Okorokov 7/6/2017
@voithos 对我来说,NPM 5 更新了 package.json 中的包版本。为了避免这种情况,我需要运行'npm update --no-save'
179赞 Nick Retallack 7/8/2014 #2

从 npm 5 开始更新:

从 npm 5.0.0 开始,默认情况下已安装的模块被添加为依赖项,因此不再需要 --save 选项。其他保存选项仍然存在,并列在 npm install 的文档中。


原答案:

如果您没有文件,它不会执行任何操作。首先运行创建一个。然后调用 or or 将更新 以列出您的依赖项。package.jsonnpm initnpm install --savenpm install --save-devnpm install --save-optionalpackage.json

评论

42赞 Jacob Wang 11/15/2014
刚刚发现它具有追溯性(似乎)。您可以先运行第一个,然后运行 npm init,您的package.json将被填充。npm install --save-dev
367赞 Joe L. 3/8/2016 #3

从 npm 5 开始更新:

从 npm 5.0.0(2017 年 5 月发布)开始,已安装 默认情况下,模块被添加为依赖项,因此选项 不再需要。
其他保存选项仍然存在,并在文档中列出 为。
--savenpm install


原答案:

要在依赖项中添加包,请执行以下操作:

npm install my_dep --save

npm install my_dep -S

npm i my_dep -S

在 devDependencies 中添加包

npm install my_test_framework --save-dev

npm install my_test_framework -D

npm i my_test_framework -D

package.jsonenter image description here

评论

50赞 Murray Wynnes 8/12/2016
使用快捷方式版本时要小心,因为它们必须是大写的。我总是犯这个错误,npm 不会抱怨或将其添加到package.json-S-D
29赞 tanvi 8/22/2019
它不会抱怨,因为(小写)用于选项,并且用于日志级别信息,这两者都是有效的快捷方式。-s--silent-d
21赞 DevWL 6/10/2017 #4

您还可以使用 ,或者等效于将包保存到应用程序依赖项、开发依赖项或生产依赖项。在下面查看更多 NPM 快捷方式:-S-D-P

-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

可以通过运行以下命令来获取此快捷方式列表:

npm help 7 config
15赞 Nizam Deen 7/28/2017 #5

用:

npm install package_x --save

给定的包 (package_x) 将保存在依赖项内的文件package.json中。

如果将

npm install <<package_x>> --save-dev

然后它将保存在 devDependencies 中。

评论

18赞 Pedro A 7/28/2017
您的答案贡献了其他答案尚未涵盖的内容吗?
6赞 IAM_AL_X 2/14/2020
@Pedro 答:我怀疑这家伙重写了他刚刚读到的内容;然后让他的朋友给他投赞成票。
12赞 themefield 8/17/2017 #6

从 npm 5 开始,使用 (or ) 比做同样的事情更有利,正如 npm install 中所述。到目前为止,如果提供,仍然有效。--save-prod-P--save--save

评论

2赞 killjoy 4/28/2018
这需要走到顶部,以节省我们所有人眼花缭乱的阅读变化、矛盾和线程劫持。SO 需要鼓励使用有效 URL 的简洁答案,这样我们才能避免 CRUD 并继续我们的工作。(Quora 有一个简洁的“这个答案是否相关”等,我甚至在此之前就建议 SO 这样做)\n 糟糕的是,官方节点文档没有提到较旧的(已失效的)选项,而且大多数节点引用似乎都是 5.0 之前的,让我们头晕目眩。
10赞 rajesh kumar 11/3/2017 #7

从 npm 5 开始,npm 现在将默认保存。

如果您希望 npm 以类似于以前版本中工作方式的旧方式(无自动保存)工作,您可以更新配置选项以启用自动保存,如下所示。

npm config set save false

若要获取当前设置,可以执行以下命令:

npm config get save

来源:以下是您需要了解的有关 npm 5 的信息

5赞 Nitin . 1/10/2018 #8

npm i (软件包名称) --save

简单地说,使用上面的命令,我们不需要在你package.json文件中写包名称,它会自动添加它的名称和依赖关系,以及你在生产或设置其他时间时需要的版本。

npm 帮助安装

上面的命令将有助于找出更多选项并纠正图中所示的 def.show:

Enter image description here

评论

0赞 Peter Mortensen 1/27/2023
请查看为什么在提问时不上传代码/错误的图像?(例如,“图像只能用于说明无法通过任何其他方式阐明的问题,例如提供用户界面的屏幕截图。做正确的事情(它也涵盖了答案)。提前致谢。
0赞 Nitin . 6/21/2023
当然,在进一步的帖子/答案中会牢记这一点。谢谢@PeterMortensen
46赞 ROROROOROROR 5/7/2018 #9

根据 NPM Doc

Enter image description here

所以似乎通过运行,包依赖应该会自动添加到package.json中,对吧?npm install package_name

评论

2赞 Abhiroj Panwar 5/20/2018
我想--no-save是在你想要像npm<5这样的功能时使用的
0赞 ROROROOROROR 5/21/2018
我明白了,显示默认情况下,save-xxx 选项都是 false,只有 save 是 true。npm config ls -l
0赞 Leon 3/30/2020
如果您放置一个不存在的选项,例如 --save-xxxxxx,npm 似乎不会触发任何错误。它只是忽略它,默认行为 --save-prod 将生效。也许 --save 来自一些旧的 npm 版本。
0赞 Peter Mortensen 1/27/2023
请查看为什么在提问时不上传代码/错误的图像?(例如,“图像只能用于说明无法通过任何其他方式阐明的问题,例如提供用户界面的屏幕截图。做正确的事情(它也涵盖了答案)。提前致谢。
5赞 Rubin bhandari 6/5/2018 #10

向package.json添加依赖项的更简单(也更棒)的方法是从命令行执行此操作,使用 --save 或 --save-dev 标记 npm install 命令,具体取决于您希望如何使用该依赖项。

7赞 Sunny Goel 12/12/2018 #11

npm install --save或者就是为什么我们在这两个选项之间选择一个选项,同时在我们的项目中安装包。npm install --save-dev

从前面的答案中可以清楚地看出,这些答案将在 package.json 文件的字段中添加一个条目,并在 中添加另一个条目。npm install --savedependencydev-dependency

那么问题来了:为什么我们需要在文件中输入安装模块package.json,因为每当我们在 Git 中签入代码或将代码交给某人时,我们总是在没有 node_modules 文件夹的情况下提供或检查它,因为它非常大,也可以在公共场所使用, 因此,为了避免这种情况,我们这样做了。

因此,另一个人将如何获得该项目专门或需要的所有模块,因此答案来自package.json文件,其中包含运行或开发该项目所需的所有软件包的条目。

因此,在获取代码后,我们只需要运行 npm install 命令即可。它将读取package.json文件并安装必要的必需软件包。

19赞 xgqfrms 9/28/2020 #12

npm v6.x 更新

现在,您可以使用 or or 之一来安装模块并将其保存为依赖项。npm inpm i -Snpm i -P

npm i是 的别名npm install

  1. npm i等于 ,表示默认保存模块作为依赖项;npm install
  2. npm i -S等于 (npm v5-)npm install --save
  3. npm i -P等于 (npm v5+)npm install --save-prod

查看你的 npm 版本

npm -v

6.14.4

获取 npm cli 帮助信息

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 install 帮助

npm help install别名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]
➜  ~

引用

npm-安装

Enter image description here

9赞 thekundankamal 12/7/2020 #13

–npm install --save 或 -S:当以下命令与 npm install 一起使用时,这会将所有已安装的核心包保存到 package.json 文件的 dependency 部分。核心依赖项是那些包,没有这些包,您的应用程序将无法提供所需的结果。

但如前所述,在 npm 5.0.0 版本之后,这是一个不必要的功能。

npm install --save
0赞 Samuel Reyes 3/26/2022 #14

当您在 npm 命令中使用 --save 安装包时,这意味着您的项目将在生产环境中安装这些依赖项,例如,如果您安装库来管理日期。

npm install moment --save
npm i moment -S (same result)

(这适用于生产环境)

npm install moment --save--dev
npm i moment -D (same result)

(这适用于开发环境)