我看到安装软件包的说明
npm install <package_name>
或
npm install <package_name> --save
npm install <package_name> --save-dev
这些选项之间有什么区别?
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仓库,请参见下文。作用域名称后面必须跟一个斜杠。示例:
-S, --save
-D, --save-dev
-O, --save-optional
-E, --save-exact
<scope>
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
<name>
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列表中。
--save
package.json
npm install
--no-save
x8goxv8g3#
由于提出了这个问题,因此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上阅读更多信息。
npm install <package_name> --no-save
npm install <package_name> ---save-dev
devDependencies
3条答案
按热度按时间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仓库,请参见下文。作用域名称后面必须跟一个斜杠。
示例:
注意:如果在当前工作目录中有一个名为
<name>
的文件或文件夹,那么它将尝试安装该文件或文件夹,并且只在名称无效时尝试按名称获取包。(from官方文件)https://docs.npmjs.com/cli/install
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列表中。
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上阅读更多信息。