NPM:更新范围内的所有依赖项

omvjsjqw  于 2023-02-13  发布在  其他
关注(0)|答案(6)|浏览(332)

是否有快捷方式更新特定范围内的所有包依赖项。
例如,在下面的package.json中有没有一种快速的方法可以 * 仅 * 更新那些具有@example作用域的软件包?

…
dependencies: {
  alpha,
  bravo,
  @example/a,
  @example/b,
  @example/c,
  @example/d,
  @example/e,
  @example/f,
}
pkmbmrz7

pkmbmrz71#

我偶然发现了这个确切的问题,包npm-check无缝地完成了这个任务。
键入npx npm-check -u并选择要升级的软件包,然后按Enter键继续。

czfnxgou

czfnxgou2#

不幸的是,在Yarn的最新版本中删除了yarn upgrade,而是使用yarn up '@scope/*',它会将每个package.json文件中以@scope/开头的每个包升级到最新版本,请参见these docs,这也避免了安装升级插件或使用upgrade-interactive,后者不支持模式匹配

stszievb

stszievb3#

我为此编写了一个小工具。为Yarn项目运行npx update-by-scope @example,为Npm项目运行npx update-by-scope @example npm install

2g32fytz

2g32fytz4#

我使用the npm-check-updates package更新依赖项--只需要全局安装它,然后运行ncu。默认情况下,它对所有软件包运行在“check”模式下,但是您可以传递一个命令行标志,让它将每个软件包的最新版本写入package.json。它支持过滤,因此您可以将更新仅应用于单个范围,如ncu '/@angular\/.*/'

inn6fuwd

inn6fuwd5#

使用Yarn:

yarn upgrade --scope @example
mo49yndu

mo49yndu6#

我在angular项目中也有同样的问题。我使用package.json中的script部分。
我将custom name(例如update-scope)设置为key,并将命令设置为value

"scripts": {
      "ng": "ng",
      "build": "node package-builder",
      "update-scope": "npm update @example/a && npm update @example/b && ..."
   }

然后使用以下命令运行custom name

npm run update-scope // `update-scope` is my custom name

最后,更新了my scope中的所有my packages
希望有用。

相关问题