-save标志对npm install做了什么

Obr*_*ios 64 npm npm-install

我看到安装包的说明

npm install <package_name>
Run Code Online (Sandbox Code Playgroud)

要么

npm install <package_name> --save
Run Code Online (Sandbox Code Playgroud)

要么

npm install <package_name> --save-dev
Run Code Online (Sandbox Code Playgroud)

这些选项有什么区别?

小智 44

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

  • 虽然`--save`选项似乎仍然有效,但不再需要它 - 现在默认情况下将包保存到依赖项****.逻辑现在反转 - 如果你不**想要保存你的包,你需要指定`--no-save` (39认同)

Obr*_*ios 42

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

--save 安装包并更新package.json中的依赖项.

--save更新npm install <package_name> --no_save您的包裹.这些仅用于本地测试和开发.

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

  • 这是我的Google搜索“ npm --save flag”的最佳答案。请考虑使用正确的信息来更新它,即--save现在是默认值,而--no-save是必需的,以便不更新package.json中的依赖项列表 (2认同)

2xj*_*2xj 18

--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范围运算符.

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