保存标志对npm install有什么作用

uxhixvfz  于 2022-11-14  发布在  其他
关注(0)|答案(3)|浏览(159)

我看到安装软件包的说明

npm install <package_name>

npm install <package_name> --save

npm install <package_name> --save-dev

这些选项之间有什么区别?

iqjalb3h

iqjalb3h1#

npm安装需要3个专用的可选标志,用于保存或更新主包中的包版本。json:
-S, --save:软件包将出现在依赖项中。
-D, --save-dev:软件包将出现在devDependencies中。
-O, --save-optional:包将出现在可选的依赖项中。
当使用上述任何选项将依赖项保存到package.json时,会有一个附加的可选标志:
-E, --save-exact:保存的依赖项将被配置为一个精确的版本,而不是使用npm默认的semver范围操作符。此外,如果你有一个npm-shrinkwrap.json,那么它也会被更新。
<scope>是可选的。将从与指定作用域相关联的注册表下载包。如果没有与给定作用域相关联的注册表,则使用默认注册表。请参阅npm-scope。
注意:如果你的作用域名称中没有@-符号,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>的文件或文件夹,那么它将尝试安装该文件或文件夹,并且只在名称无效时尝试按名称获取包。
(from官方文件)https://docs.npmjs.com/cli/install

0yycz8jy

0yycz8jy2#

--save标志不再起作用。
以前,正如其他答案所指出的,--save标志将更新项目的package.json文件中的依赖项,但npm install现在默认包括此功能。
此时,如果您想阻止npm install保存依赖项,则必须使用--no-save标志。
感谢Coruscate 5在他们的评论中提到这一点。
更多信息,请参阅npm-install documentation
默认情况下,npm install会将任何指定的包保存到依赖项中。另外,您可以使用一些附加标志来控制它们保存的位置和方式:
-P,--保存-产品:包将出现在依赖项中。这是默认设置,除非存在-D或-O。
-D,--存储设备:软件包将出现在devDependencies中。
-O,--保存-可选:软件包将出现在您的可选依赖项中。
--no-save:防止保存到依赖项。
当使用上述任何选项将依赖项保存到package.json时,有两个附加的可选标志:
-E,--精确保存:保存的依赖项将使用精确的版本配置,而不是使用npm的默认semver范围运算符。
-B,--保存绑定:保存的依赖关系也将添加到bundleDependencies列表中。

x8goxv8g

x8goxv8g3#

2019年更新:

由于提出了这个问题,因此npm发生了更改,--save已成为默认选项,因此您不需要使用--save来更新依赖项。

原始答案:

npm install <package_name> --save会安装套件并更新package.json中的相依性。
npm install <package_name> --no-save安装软件包,但不更新您的package.json中列出的依赖项。
npm install <package_name> ---save-dev会更新您套件中的devDependencies。这些仅用于本机测试和开发。
您可以在https://docs.npmjs.com/getting-started/using-a-package.json上阅读更多信息。

相关问题