NPM - 如何在不更新的情况下安装新包或添加 package.json 中描述的包

NPM - How to install a new package without update or add packages described on package.json

这是一个很难的问题,我会尽力解释。

如何在不安装依赖项或新包(在package/-lock.json中定义)的情况下添加新包?

例如:目前,我们有 package.json 和 package-lock.json 来维护版本控制。

但是,如果我们尝试添加新包,其他包(与 package.json 或包-lock.json 相关)正在 updated/added。

目的只是添加新包,在package.json和package-lock.json中添加这些包信息,而不影响当前安装的包。

如果您不希望任何包自动更新,请转到 package.json 并进行一些更改。 例如改变 "react-native": "^0.56.1""react-native": "0.56.1"

只需删除您在版本声明之前看到的插入符“^”或波浪号“~”。

  • Caret "^" 符号使 npm 能够更新次要版本更新(对于 以上示例 56 到 57 或更高)和
  • 波浪号“~”使 npm 能够更新补丁版本更新([major, minor, path] 元组中最右边的元素)

如果您在没有任何符号的情况下声明您的包版本,它们将不会被更新。

使用 npm ci 而不是 npm install!

来自docs

It will never write to package.json or any of the package-locks: installs are essentially frozen.

还有其他注意事项和差异,我建议阅读文档以获取更多详细信息。例如,它将删除现有的 node_module 个目录。