-save标志对npm install做了什么

时间:2016-03-15 21:52:40

标签: npm npm-install

我看到使用

安装软件包的说明
npm install <package_name>

npm install <package_name> --save

npm install <package_name> --save-dev

这些选项有什么区别?

3 个答案:

答案 0 :(得分:35)

npm install需要3个独有的可选标志,用于保存或更新主package.json中的软件包版本:

-S, - save:包将出现在您的依赖项中。

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

-O, - save-optional:包将出现在您的optionalDependencies中。

当使用上述任何选项将依赖项保存到package.json时,还有一个额外的可选标记:

-E, - save-exact:保存的依赖项将使用精确版本配置,而不是使用npm的默认semver范围运算符。 此外,如果您有一个npm-shrinkwrap.json,那么它也会更新。

<scope>是可选的。该包将从与指定范围关联的注册表中下载。如果没有与给定范围关联的注册表,则假定使用默认注册表。见npm-scope。

注意:如果您未在范围名称中包含@ -symbol,则npm会将其解释为GitHub存储库,请参阅下文。范围名称后面还必须加斜杠。

示例:

npm install sax --save npm install githubname / reponame npm install @ myorg / privatepackage npm install node-tap --save-dev npm install dtrace-provider --save-optional npm install readable-stream --save --save-exact

注意:如果当前工作目录中有一个名为<name>的文件或文件夹,那么它将尝试安装该文件或文件夹,并且只有在它无效时才尝试按名称获取包。

(来自官方文档)https://docs.npmjs.com/cli/install

答案 1 :(得分:23)

npm install <package_name>没有选项,只需安装软件包,但不更新package.json中列出的依赖项。

npm install <package_name> --save安装包并更新package.json中的依赖项。

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

您可以在https://docs.npmjs.com/getting-started/using-a-package.json了解更多信息。

答案 2 :(得分:10)

--save标志不再有用。

以前,如其他答案所述,--save标志将更新项目的package.json文件中的依赖关系,但是npm install现在默认包含此功能。

这时,如果要防止npm install保存依赖项,则必须使用--no-save标志。

感谢Coruscate5在其comment中提到了这一点。

npm-install documentation中的更多信息:

  

npm install默认将所有指定的软件包保存到依赖项中。此外,您还可以使用一些其他标志来控制保存它们的位置和方式:

     

-P,-save-prod:软件包将出现在您的依赖项中。除非存在-D或-O,否则这是默认设置。

     

-D,-save-dev:软件包将出现在您的devDependencies中。

     

-O,--save-optional:程序包将出现在您的optionalDependencies中。

     

-不保存:防止保存到依赖项。

     

使用上述任何选项将依赖项保存到package.json时,还有两个附加的可选标志:

     

-E,--save-exact:保存的依赖项将配置为确切的版本,而不是使用npm的默认semver range运算符。

     

-B,-save-bundle:保存的依赖项也将添加到bundleDependencies列表中。