-save-dev在npm中的意思是安装grunt --save-dev

时间:2013-10-07 10:59:12

标签: node.js gruntjs npm

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

关注此tutorial后,它表示有3种方法可以创建package.json文件。

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

但是--save-dev意味着什么?我试过看但却以徒劳的方式结束。

8 个答案:

答案 0 :(得分:303)

  

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

根据npm install docs

  

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

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

根据package.json docs

编辑:尝试可视化npm install的作用:

  • yourproject
    • 依赖安装
      • 依赖安装
        • 依赖安装
        • 未安装devDependency
      • 未安装devDependency
    • 安装了devDependency
      • 依赖安装
      • 未安装devDependency

答案 1 :(得分:92)

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

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

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

    npm install --save-dev packageName
    

答案 2 :(得分:32)

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

npm install --production

答案 3 :(得分:6)

npm install <package-name> --savenpm install <package-name> --save-dev的npm文档可在此处找到:

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会将其声明为模块开发的依赖项。

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

答案 4 :(得分:3)

当您使用参数&#34; - save&#34;你的依赖将进入package.json中的#1。当您使用参数&#34; - save-dev&#34;你的依赖将进入package.json中的#2。

1)&#34;依赖关系&#34;:您的应用程序在生产中需要这些包。

2)&#34; devDependencies&#34;:这些包仅用于开发和测试

答案 5 :(得分:1)

对我来说,第一个答案似乎有点令人困惑,因此请简短明了:

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

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

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

您可以在in the dcu

阅读更多内容

答案 6 :(得分:0)

-save-dev表示“仅在开发时需要”

  • 例如:使用您的软件包的最终用户将不需要/不需要/关心您使用的测试套件;他们只需要在生产环境中运行代码绝对需要的软件包。此标志标记了开发与生产时需要什么。

答案 7 :(得分:0)

–保存

安装的包是核心依赖。

–save-dev

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