296

我刚刚开始使用Grunt.js。设置起来非常困难,我正在创建一个package.json文件。

按照本教程,它说有 3 种创建package.json文件的方法。

首先是要做npm install grunt --save-dev

但 是什么--save-dev意思?我试图寻找,但徒劳无功。

4

8 回答 8

331

--save-dev:包将出现在你的 devDependencies 中。

根据npm install docs

如果有人计划在他们的程序中下载和使用您的模块,那么他们可能不希望或不需要下载和构建您使用的外部测试或文档框架。

换句话说,当你运行时npm install,你的项目的 devDependencies 将被安装,但你的应用所依赖的任何包的 devDependencies 都不会被安装;此外,将您的应用程序作为依赖项的其他应用程序不需要安装您的 devDependencies。只有在开发应用程序时才需要这样的模块(例如 grunt、mocha 等)。

根据package.json 文档

编辑:尝试可视化做什么npm install

  • 你的项目
    • 已安装依赖项
      • 已安装依赖项
        • 已安装依赖项
        • 未安装 devDependency
      • 未安装 devDependency
    • 已安装 devDependency
      • 已安装依赖项
      • 未安装 devDependency
于 2013-10-07T11:05:15.357 回答
109

您可以在 package.json 文件中指出(至少)两种类型的包依赖项:

  1. 使用您的模块所需的那些包列在“依赖项”属性下。使用 npm,您可以通过以下方式将这些依赖项添加到您的 package.json 文件中:

    npm install --save packageName
    
  2. 帮助开发模块所需的那些包列在“devDependencies”属性下。这些包对于其他人使用该模块不是必需的,但如果他们想帮助开发该模块,则需要这些包。使用 npm,您可以通过这种方式将这些 devDependencies 添加到您的 package.json 文件中:

    npm install --save-dev packageName
    
于 2015-02-13T23:21:24.080 回答
35

要添加到 Andreas 的答案,您可以使用以下方法仅安装依赖项:

npm install --production
于 2015-01-30T12:29:48.977 回答
11

当您使用参数“--save”时,您的依赖项将进入 package.json 中下面的 #1。当您使用参数“--save-dev”时,您的依赖项将进入 package.json 下面的#2。

#1。“依赖项”:您的应用程序在生产中需要这些包。

#2。“devDependencies”:这些包仅用于开发和测试

于 2017-09-05T00:23:55.097 回答
7

来自 npm for 的文档npm install <package-name> --save可以npm install <package-name> --save-dev在这里找到:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

package.json文件声明有关您正在开发的模块的元数据。上述两个命令都会修改此package.json文件。--save将已安装的包(在本例中grunt为 )声明为您的模块的依赖项;--save-dev将其声明为开发模块的依赖项。

问问自己:使用我的模块是否需要安装的包,还是只需要开发它?

于 2016-01-24T21:19:14.527 回答
5

对我来说,第一个答案似乎有点令人困惑,所以要简短明了:

npm install <package_name>默认情况下将任何指定的包保存到依赖项中。此外,您可以使用一些额外的标志来控制它们的保存位置和方式:

npm install <package_name> --no-save防止保存到依赖项。

npm install <package_name> ---save-dev更新devDependencies你的包中的。这些仅用于本地测试和开发。

您可以在 dcu中阅读更多内容

于 2018-11-19T00:00:06.043 回答
2

仅在开发时使用

  • --save-dev意味着在生产环境中省略,仅在开发环境中使用(更小,可能更快)。
于 2020-10-28T12:36:23.870 回答
1

-节省

安装的包是核心依赖。

--保存开发

安装的包不是核心,而是开发依赖。

于 2021-03-28T11:13:38.173 回答