【问题标题】:NPM - How to install a new package without update or add packages described on package.jsonNPM - 如何在不更新或添加 package.json 中描述的包的情况下安装新包
【发布时间】:2018-08-01 08:54:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您是否担心模块版本的变化?如果是这样,您可以在 package.json 中为每个模块指定一个版本,并且不会在该版本之后更新它们。
  • 已指定 package.json 上安装和描述的所有包。
  • 如果你安装了所有的包并指定了它们的版本,那么它们不应该在npm install上改变
  • @dodo 这也是我的想法。

标签: npm npm-install package.json package-lock.json


【解决方案1】:

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

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

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

如果你声明你的包版本没有任何标志,它们将不会被更新。

【讨论】:

    【解决方案2】:

    使用npm ci 而不是npm install

    来自docs

    它永远不会写入 package.json 或任何包锁:安装基本上是冻结的。

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

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 2018-01-17
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 2018-08-13
      • 2019-04-13
      • 2016-12-13
      • 1970-01-01
      相关资源
      最近更新 更多