--save 标志对 npm install 有什么作用

What do the --save flags do with npm install

我看到安装包的说明

npm install <package_name>

npm install <package_name> --save

npm install <package_name> --save-dev

这些选项有什么区别?

npm install <package_name> --save 安装包并更新 package.json 中的依赖项。由于这个问题被问到 npm 发生了变化,因此 --save 已成为默认选项,因此您不需要使用 --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: 包将出现在您的可选依赖项中。

当使用上述任何选项将依赖项保存到 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> 的文件或文件夹,那么它会尝试安装它,只有在它无效时才尝试按名称获取包。

(来自官方文档)https://docs.npmjs.com/cli/install

--save 标志不再有用。

以前,如其他答案所述,--save 标志会更新项目 package.json 文件中的依赖项,但 npm install 现在默认包含此功能。

此时如果你想阻止npm install保存依赖项,你必须使用--no-save标志。

感谢 Coruscate5 在他们的 中提到了这一点。

npm-install documentation 中的更多信息:

npm install saves any specified packages into dependencies by default. Additionally, you can control where and how they get saved with some additional flags:

-P, --save-prod: Package will appear in your dependencies. This is the default unless -D or -O are present.

-D, --save-dev: Package will appear in your devDependencies.

-O, --save-optional: Package will appear in your optionalDependencies.

--no-save: Prevents saving to dependencies.

When using any of the above options to save dependencies to your package.json, there are two additional, optional flags:

-E, --save-exact: Saved dependencies will be configured with an exact version rather than using npm’s default semver range operator.

-B, --save-bundle: Saved dependencies will also be added to your bundleDependencies list.