我刚刚开始使用 Grunt.js。设置起来非常困难,我正在创建一个 package.json
文件。
在此 tutorial 之后,它表示有 3 种方法可以创建 package.json
文件。
首先是做npm install grunt --save-dev
但是 --save-dev
是什么意思?我试着寻找,但结果是徒劳的。
--save-dev:包将出现在你的 devDependencies 中。
如果有人计划在他们的程序中下载和使用您的模块,那么他们可能不想或不需要下载和构建您使用的外部测试或文档框架。
换句话说,当您运行 npm install
时,将安装项目的 devDependencies,但不会安装您的应用所依赖的任何包的 devDependencies;此外,将您的应用程序作为依赖项的其他应用程序不需要安装您的 devDependencies。只有在开发应用程序时才需要这样的模块(例如 grunt、mocha 等)。
编辑:尝试可视化 npm install 的作用:
yourproject 依赖项已安装依赖项已安装依赖项已安装 devDependency 未安装 devDependency 未安装 devDependency 已安装依赖项已安装 devDependency 未安装
已安装依赖项 已安装依赖项已安装 devDependency 未安装 devDependency 未安装
已安装依赖项 已安装依赖项 devDependency 未安装
已安装依赖项
未安装 devDependency
未安装 devDependency
devDependency 已安装依赖项已安装 devDependency 未安装
已安装依赖项
未安装 devDependency
您可以在 package.json 文件中指出(至少)两种类型的包依赖项:
使用您的模块所需的那些包列在“依赖项”属性下。使用 npm,您可以通过以下方式将这些依赖项添加到您的 package.json 文件中: npm install --save packageName 帮助开发您的模块所需的那些包列在“devDependencies”属性下。这些包对于其他人使用该模块不是必需的,但如果他们想帮助开发该模块,则需要这些包。使用 npm,您可以通过这种方式将这些 devDependencies 添加到您的 package.json 文件中: npm install --save-dev packageName
要添加到 Andreas 的答案,您可以使用以下方法仅安装依赖项:
npm install --production
当您使用参数“--save”时,您的依赖项将进入 package.json 中下面的 #1。当您使用参数“--save-dev”时,您的依赖项将进入 package.json 下面的#2。
#1。 “依赖项”:您的应用程序在生产中需要这些包。
#2。 “devDependencies”:这些包仅用于开发和测试
可以在此处找到来自 npm 的 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
将其声明为开发模块的依赖项。
问问自己:使用我的模块是否需要安装的包,还是只需要开发它?
对我来说,第一个答案似乎有点令人困惑,所以要简短明了:
npm install <package_name>
默认将任何指定的包保存到依赖项中。此外,您可以使用一些额外的标志来控制它们的保存位置和方式:
npm install <package_name> --no-save
防止保存到依赖项。
npm install <package_name> ---save-dev
更新包中的 devDependencies
。这些仅用于本地测试和开发。
您可以在 in the dcu 阅读更多信息
仅在开发时使用
--save-dev 表示在生产环境中省略,仅在开发环境中使用(更小,可能更快)。
-节省
安装的包是核心依赖。
--保存开发
安装的包不是核心,而是开发依赖。
不定期副业成功案例分享
npm install --dev
标志?npm install
,那么该项目的 devDependencies 也将被安装。您不希望安装依赖项的 devDependencies。如果您想在 npm 包上进行开发,您需要git clone xxx
该项目,并在其中运行npm install
。npm install
,则会安装 package.json 中的所有 devDependencies,但是如果您将项目打包为新的 npm 包并发布它,当其他人使用 npm install 安装您的包时,devDependencies不会安装在他们的系统上。那正确吗? @stanzheng 或者您可以运行 npm install --production 来安装 package.json 中的所有内容,除了开发依赖项