我看到使用以下任一方法安装软件包的说明
npm install <package_name>
要么
npm install <package_name> --save
要么
npm install <package_name> --save-dev
这些选项之间有什么区别?
Answers:
npm install <package_name> --save
安装软件包并更新package.json中的依赖项。由于询问了此问题--save
,因此npm进行了更改,因此已成为默认选项,因此您无需使用它--save
来更新依赖项。
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上阅读更多内容。
npm install带有3个排他的,可选的标志,用于保存或更新主package.json中的软件包版本:
-S, --save
:软件包将出现在您的依赖项中。
-D, --save-dev
:软件包将出现在您的devDependencies中。
-O, --save-optional
:软件包将出现在您的optionalDependencies中。
使用上述任何选项将依赖项保存到package.json时,还有一个附加的可选标志:
-E, --save-exact
注意:保存的依赖项将使用确切的版本配置,而不是使用npm的默认semver range运算符。此外,如果您有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>
当前工作目录中有一个文件或文件夹命名,则它将尝试安装该文件或文件夹,并且仅在名称无效时才尝试按名称获取该软件包。
--save
选项似乎仍然有效,但不再需要-软件包现在默认保存为依赖项。该逻辑是颠倒-如果你不希望保存你的包,你需要指定--no-save
该--save
标志不再起作用。
以前,如其他答案所述,该--save
标志将更新项目package.json
文件中的依赖项,但npm install
现在默认情况下包括此功能。
此时,如果要防止npm install
保存依赖项,则必须使用该--no-save
标志。
感谢Coruscate5在他们的评论中提到了这一点。
npm-install文档中的更多信息:
npm install默认将所有指定的软件包保存到依赖项中。此外,您可以使用一些其他标志来控制在何处以及如何保存它们:
-P,--save-prod:软件包将出现在您的依赖项中。除非存在-D或-O,否则这是默认设置。
-D,--save-dev:软件包将出现在您的devDependencies中。
-O,--save-optional:包将出现在您的optionalDependencies中。
--no-save:防止保存到依赖项。
使用上述任何选项将依赖项保存到package.json时,还有两个附加的可选标志:
-E,--save-exact:将使用精确版本配置保存的依赖项,而不是使用npm的默认semver range运算符。
-B,--save-bundle:保存的依赖项也将添加到bundleDependencies列表中。