【问题标题】:What is the --save option for npm install?npm install 的 --save 选项是什么?
【发布时间】:2013-11-03 22:04:27
【问题描述】:

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

npm install --save

--save 选项是什么意思?

【问题讨论】:

  • @Tom- --save: Package will appear in your dependencies.
  • 你可以使用快捷方式 -S 和 -D 那里 -S 是 --save 和 -D 是 '--save-dev。 --save(或简单的-S):包将出现在您的依赖项中。 --save-dev(或简单的-D):包将出现在你的devDependencies中。
  • @WiredPrairie 谢谢我在尝试npm install (--help | -h | -help ..),但什么也没有。
  • 谢谢@Dmitri,我遇到了同样的问题。来吧 NPM 将它添加到您的工具的 MAN 页面
  • 我不明白决定从文档和帮助页面中删除甚至只是提及此选项的基本原理没有至少也弃用它,工具本身带有警告。同时,新手通过无数的教程接触到它。然后他们试图找出它的作用,并且不得不浪费 20 分钟阅读文档,最终在 stackoverflow 上阅读 npm 历史记录。奇怪的是,防止这种大量浪费时间(如果问题的受欢迎程度有任何迹象)是文档的目的之一。

标签: node.js npm


【解决方案1】:

更新 npm 5:

npm 5.0.0 开始,已安装的模块默认作为依赖项添加,因此不再需要--save 选项。其他保存选项仍然存在,并在documentation 中列出了npm install

原答案:

在版本 5 之前,NPM 只是默认在node_modules 下安装了一个包。当您尝试为您的应用程序/模块安装依赖项时,您需要先安装它们,然后将它们(连同相应的版本号)添加到您的 package.jsondependencies 部分。

--save 选项指示 NPM 自动将包包含在 package.jsondependencies 部分中,从而为您节省了额外的步骤。

此外,还有补充选项--save-dev--save-optional 分别将包保存在devDependenciesoptionalDependencies 下。这在安装仅限开发的包时很有用,例如 grunt 或您的测试库。

【讨论】:

  • 说真的,这在任何地方都有记录吗?我在 Google 或 npm 帮助中找不到它。
  • 如果在使用 npm install --help 时出现相关文档,那就太好了。
  • @jimsmith:从 npm 5.0 开始,它是默认设置。
  • NPM 5 上的“npm update”是否默认修改 package.json?
  • @voithos 对于我来说,NPM 5 更新 package.json 中的包版本。为了避免它,我需要运行'npm update --no-save'
【解决方案2】:

从 npm 5 开始更新:

从 npm 5.0.0 开始,已安装的模块默认添加为依赖项,因此不再需要 --save 选项。其他保存选项仍然存在,并列在 npm 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.json

【讨论】:

  • 小心使用像-S -D 这样的快捷方式版本,因为它们必须是大写的。我总是犯这个错误,npm 没有抱怨或将其添加到 package.json
  • 它不会抱怨,因为-s(小写)用于--silent 选项,-d 用于日志级别信息,它们都是有效的快捷方式。
【解决方案3】:

从 npm 5 开始更新:

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


原答案:

如果您没有package.json 文件,它不会做任何事情。首先运行npm init 创建一个。然后调用npm install --savenpm install --save-devnpm install --save-optional 将更新package.json 以列出您的依赖项。

【讨论】:

  • 刚刚发现它可以追溯(似乎)。你可以先运行npm install --save-dev,然后 npm init 和你的 package.json 将被填充。
【解决方案4】:

根据NPM Doc

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

【讨论】:

  • 我猜 --no-save 是在你想要 npm 之类的功能时使用的
  • 我明白了,npm config ls -l 显示默认情况下,save-xxx 选项都是 false,只有 save 是 true。
  • 如果你设置一个不存在的选项,比如 --save-xxxxxx,npm 似乎不会触发任何错误。它只是忽略它,默认行为 --save-prod 将生效。也许 --save 来自一些旧的 npm 版本。
【解决方案5】:

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

-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

【讨论】:

    【解决方案6】:

    npm v6.x 更新

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

    npm inpm install的别名

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

    检查你的 npm 版本

    $ npm -v
    6.14.4
    

    获取 npm 帮助

    ➜  ~ 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
    

    获取 npm 安装帮助

    npm -h i/npm help install

    $ 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]
    ➜  ~ 
    
    

    参考

    https://docs.npmjs.com/cli/install

    【讨论】:

      【解决方案7】:

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

      【讨论】:

      • 这需要到顶部来为我们所有人节省令人眼花缭乱的阅读变化、矛盾和线程劫持。 SO 需要鼓励使用有效 URL 的简洁答案,这样我们就可以避免 CRUD 并继续我们的工作。 (Quora 有一个简洁的“这个答案是否相关”等,我什至在此之前就建议这样做)\n 很糟糕,官方节点文档没有提到旧的(已失效)选项,并且大多数节点引用似乎是 pre -5.0,让我们的脑袋转一转。
      【解决方案8】:

      从 npm 5 开始,npm 现在将默认保存。 如果您希望 npm 以与以前版本类似的旧方式(不自动保存)工作,您可以更新配置选项以启用自动保存,如下所示。

      npm config set save false
      

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

      npm config get save
      

      来源:https://blog.pusher.com/what-you-need-know-npm-5/

      【讨论】:

        【解决方案9】:

        npm install package_x --save

        给定的包 (package_x) 将保存在 package.json 中的依赖项中。 如果你添加

        npm install &lt;&lt;package_x&gt;&gt; --save-dev

        然后它将被保存在 devDependencies 中。

        【讨论】:

        • 您的答案有什么其他答案尚未涵盖的贡献?
        • @Pedro A -- 我怀疑这个人重写了他刚刚读到的内容;然后让他的朋友给他投票。
        【解决方案10】:

        npm i(包名)--save

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

        npm 帮助安装

        以上命令将帮助找出更多选项并更正图片中的 def.shown

        【讨论】:

          【解决方案11】:

          npm install --savenpm install --save-dev 为什么我们在项目中安装包时选择这两者之间的 1 个选项。

          从上面的答案可以清楚地看出npm install --save 将在pacakage.json 文件的dependency 字段中添加条目,在dev-dependency 中添加另一个条目。

          所以问题出现了,为什么我们需要在 pacakge.json 文件中输入我们的安装模块,因为每当我们在 git 中签入代码或将我们的代码提供给某人时,我们总是在没有 node-modules 的情况下提供或检查它,因为它尺寸非常大,而且在普通地方也可以买到,所以为了避免这种情况,我们这样做了。

          那么其他人将如何获得该项目专门或需要的所有模块,所以答案是 from the package.json 文件,其中包含运行或开发该项目所需的所有包的条目。

          所以在获取代码we simply need to run the npm install 命令后,它将读取 package.json 文件并安装必要的必需包。

          【讨论】:

            【解决方案12】:

            –npm install --save 或 -S:当以下命令与 npm install 一起使用时,这会将所有已安装的核心包保存到 package.json 文件的依赖项部分。核心依赖项是那些没有这些包,您的应用程序将无法提供所需的结果。但如前所述,在 npm 5.0.0 及以后的版本中,这是一个不必要的功能。

            npm install --save
            

            【讨论】:

              【解决方案13】:

              将依赖项添加到 package.json 的更简单(也更棒)的方法是从命令行执行此操作,使用 --save 或 --save-dev 标记 npm install 命令,具体取决于您的方式我想使用那个依赖。

              【讨论】:

                猜你喜欢
                • 2014-09-04
                • 2014-04-09
                • 2017-09-27
                • 2013-10-13
                • 1970-01-01
                • 2017-03-01
                • 2016-02-03
                相关资源
                最近更新 更多