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

Ven*_*soh 268 node.js npm gruntjs

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

在本教程之后,它说有3种方法可以创建package.json文件.

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

但这--save-dev意味着什么?我试着看,但结果徒劳无功.

And*_*ren 308

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

根据npm安装文档.

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

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

根据package.json文档.

编辑:尝试可视化的内容npm install:

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

  • 为了澄清一下,如果在你的项目中运行`npm install`,将安装package.json中的所有devDependencies,但是如果你将项目打包为新的npm包并发布它,当有人用npm install安装你的包时, devDependencies不会安装在他们的系统上.是对的吗?@stanzheng或者你可以运行npm install --production来安装package.json中的所有东西,除了dev依赖项 (8认同)
  • 我试图理解,但我没有.然后我尝试了解可视化,但事实并非如此.每个项目符号项的含义是什么?一个文件夹?删除项目的含义是什么?一个不存在的目录?如果这是真的,你怎么能详尽地列出*不存在的*事物? (5认同)
  • @stanzheng我不确定你需要知道什么.如果你在一个项目中并运行`npm install`,那么也将安装项目的devDependencies.您不希望安装依赖项的devDependencies.如果你想在一个npm包上开发,那你就可以"git clone xxx"那个项目,并在其中运行`npm install`. (4认同)
  • "运行npm install时不会安装应用程序依赖项的devDependencies"不正确.如果我有一个package.json并且它只包含带有我的npm包的"devDependencies",然后我输入"npm install",那么就会安装这些"devDependecies". (3认同)
  • 默认情况下它不会与dev依赖项安装,但我如何安装呢?````npm install --dev```标志? (2认同)
  • @RafaelEyng 是的,只安装了一层 devDependency。 (2认同)

Lon*_*est 95

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

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

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

    npm install --save-dev packageName
    
    Run Code Online (Sandbox Code Playgroud)


mac*_*115 33

要添加到Andreas的答案,因为我还无法发表评论,您可以使用以下方法仅安装依赖项: __CODE__


Sat*_*esh 8

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

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

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

  • 这是最清晰、最简单的英文解释。 (2认同)

小智 6

从NPM的文件npm install <package-name> --savenpm 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将它声明为模块开发的依赖项.

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


Ann*_*ein 5

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

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

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

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

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