Grunt.js:在npm install -gave -save-dev中,-save-dev是什么意思

我刚开始使用Grunt.js 。 这是很难设置,我正在创build一个package.json文件。

按照这个教程 ,它说有三种方法来创build一个package.json文件。

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

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

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

根据npm安装文档 。

如果有人计划在他们的程序中下载和使用你的模块,那么他们可能不想或者不需要下载和构build你使用的外部testing或者文档框架。

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

根据package.json文档 。

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

  • yourproject
    • 依赖关系安装
      • 依赖安装
        • 依赖安装
        • devDependency没有安装
      • devDependency没有安装
    • devDependency安装
      • 依赖安装
      • devDependency没有安装

您可以在package.json文件中指出(至less)两种types的包依赖关系:

  1. 那些为了使用你的模块而需要的包列在“dependencies”属性下面。 使用npm你可以通过这种方式将这些依赖添加到你的package.json文件中:

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

     npm install --save-dev packageName 

要添加到Andreas的答案,因为我还不能评论,您可以通过使用安装只依赖关系: npm install --production

从npm npm install <package-name> --save npm的文档npm install <package-name> --savenpm install <package-name> --save-dev可以在这里find:

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

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

当你使用参数“–save”时,你的依赖关系会进入package.json的#1内部。 当你使用参数“–save-dev”时,你的依赖将进入package.json中的#2。

1)“依赖性”:这些包是您的应用程序在生产中所需要的。

2)“devDependencies”:这些软件包只用于开发和testing