yarn 依赖包版本升级

2023年3月20日更新

以前的写的都没啥用,还让人困惑的很,不用看
有个直接解决的办法 :
在package.json中加一个结点:

{
  "dependencies":{
  ....
  },
  ...
  "resolutions": {
    "json5": "^2.2.3"  // 比如要升级json5这个包,直接在这指定就好
  }
}

配置好后再yarn一下, 生成的 yarn.lock 文件配置如下 :

json5@^1.0.2, json5@^2.2.2, json5@^2.2.3:  // 这把各个依赖放一起了,
  version "2.2.3"                          // 统一使用这个版本
  resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
  integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==

----------------------------更新结束----------------------------

以下内容不用看,都是垃圾,解决不了问题

$ yarn outdated   # 检测哪些包可以升级
$ yarn  upgrade  --latest  # 升级指定包

    # 或者使用 yarn-upgrade-all 升级全部的包
$ npm install -g yarn-upgrade-all  # 全局安装
$ yarn yarn-upgrade-all

需注意的是依赖的依赖没办法指定升级的,需要第一级的依赖升级了它才行

来源: https://stackoverflow.com/questions/62650640/yarn-how-do-i-update-each-dependency-in-package-json-to-the-latest-version

补充,近日安全检测后 需升级 terser 这个包,这个包的依赖路径是:

webpack -> terser-webpack-plugin -> terser

升级操作步骤:

  1. 先将webpack升级到最新版,但发现 terser-webpack-plugin 的版本还是没有升级到最新,因此手动更新了下yarn.lock的 webpack 的依赖版本
[email protected]:
  version "5.74.0"
  resolved "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980"
  integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==
  dependencies:
    ....
    terser-webpack-plugin "^5.3.6"
    ....
  1. 删除 yarn.lock中的代码
terser-webpack-plugin@^5.1.3:
  version "5.3.6"
  ....

terser@^5.14.1:
  version "x.x.x"
  ....
  1. 执行 yarn install
  2. 检查 terser 的版本是否达到要求
  3. 如不行,则修改 terser-webpack-plugin 依赖 terser 的版本号,递归处理就行

你可能感兴趣的:(yarn 依赖包版本升级)