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 <package-name> --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 的依赖版本
webpack@5.74.0:
  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 的版本号,递归处理就行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容