我看到使用
安装软件包的说明npm install <package_name>
或
npm install <package_name> --save
或
npm install <package_name> --save-dev
这些选项有什么区别?
答案 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>
的文件或文件夹,那么它将尝试安装该文件或文件夹,并且只有在它无效时才尝试按名称获取包。
答案 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列表中。