Yarn - 如何将 package.json 中的每个依赖项更新到最新版本?

Muh*_*ooq 33 node.js npm reactjs yarnpkg

我有一个已弃用依赖项的 React 应用程序。为了使其工作,我必须将依赖项更新为较新(但稳定)的版本。

根据这个 stakoverflow线程,要将 package.json 中的依赖项更新到最新版本,npm-check-updates是 npm 的最佳选择。但是,我使用纱线进行包管理。纱线中是否有相当于 npm-check-updates 的东西。因此,我使用单个包管理器来管理我的依赖项。

Vah*_*adi 58

yarn upgrade-interactive --latest

但是yarn.lock在做之前你必须有一个文件。如果您正在使用npm,则必须先删除package-lock.json。然后运行yarn以创建结构。之后你就可以了upgrade-interactive。没有它,yarn显示升级,但在package.json.

  • 这是现代版本 Yarn 的“yarn up” https://yarnpkg.com/cli/up (5认同)
  • 清除您的“node_modules”文件夹和“yarn.lock”、“yarn-error.log”文件。然后尝试“yarn --ignore-engines”。成功安装后,尝试“yarn Upgrade-interactive --latest”。 (4认同)
  • 如果这些都没有成功,那么尝试``yarn outdated```并直接在``package.json```中手动更新包。在这样做之前你需要放松心情:) (3认同)
  • 'yarn Upgrade-interactive --latest' 未知语法错误:不支持的选项名称(“--latest”)。 (2认同)

小智 24

对我有用的一个来自@Andrew Zolotarev 的评论,它使用

npx yarn-upgrade-all
Run Code Online (Sandbox Code Playgroud)

  • 现在我使用“npx npm-upgrade”。我认为它对我来说使用起来更好。 (3认同)

jma*_*eli 23

使用 Yarn v2 和 v3 (Berry)

您必须首先安装适当的插件:

yarn plugin import interactive-tools
Run Code Online (Sandbox Code Playgroud)

然后执行

yarn upgrade-interactive
Run Code Online (Sandbox Code Playgroud)

来源: https: //yarnpkg.com/cli/upgrade-interactive


Ahm*_*tar 14

你可以试试这个 npm 包yarn-upgrade-all。此软件包将删除其中的每个软件包package.json并再次添加它,这会将其更新为最新版本。

安装:

npm install -g yarn-upgrade-all
Run Code Online (Sandbox Code Playgroud)

用法:在您的项目目录中运行:

yarn yarn-upgrade-all
Run Code Online (Sandbox Code Playgroud)

  • 这个包对 `package.json` 中的所有包运行 `yarn remove && yarn add` 太慢了,但是可以用!较短版本:`npx yarn-upgrade-all` (3认同)
  • `yarn yarn-upgrade-all` 对我不起作用,但 `npx yarn-upgrade-all` 有效。谢谢@AndrewZolotarev (3认同)
  • 运行 `npx yarn-upgrade-all` 将我的 `"vue": "^3.0.5"` 依赖项更改为 `"vue": "^2.6.14"`,这是我没想到的。显然,这破坏了构建。 (3认同)
  • 谢谢!这是一个不错的选择,只有一个注意事项。来自官方文档“不要使用yarn在Windows上安装它,因为有一个错误https://github.com/yarnpkg/yarn/issues/2224” (2认同)
  • `npx 纱线升级全部` (2认同)

Ali*_*ome 12

列表已过时

yarn outdated
Run Code Online (Sandbox Code Playgroud)

将所有依赖项升级到最新

这将升级到最新版本,无论包是否稳定或包之间的版本控制限制。

yarn upgrade --latest
Run Code Online (Sandbox Code Playgroud)

纱线文档


Rai*_*ere 12

npm-check-updates与yarn 完全兼容。npx npm-check-updates只需在您的项目目录中运行即可。

npm-check-updates是一个经过实战考验、已有 8 年历史的库,可以正常运行。它提供交互模式和医生模式,用于自动运行测试和识别损坏的升级。

免责声明:我是 npm-check-updates 的主要贡献者。

npm-check-updates - 默认输出

互动+小组模式:

npm-check-updates - 交互模式


Fav*_*rge 10

您可以使用以下命令将单个软件包升级到最新的主要版本:

yarn upgrade <package-name> --latest
Run Code Online (Sandbox Code Playgroud)

  • 有时您只想更新单个依赖项。要更新补丁版本(major.minor.patch),您可以使用例如纱线升级&lt;p​​ackage-name&gt;@1.1.x(使用您拥有的任何主要/次要版本) (20认同)
  • 这个答案是错误的——这个命令不会用最新版本更新package.json。 (7认同)
  • 你想让他一一列出他所有的包裹吗? (4认同)
  • @zmx 是本页的最佳答案。升级整个依赖项可能最终会陷入困境,不幸的是其他建议并不总是有效。 (2认同)

Aro*_*sha 7

如果你想用yarn更新包并相应地更新package.json,

  1. 安装syncyarnlock - yarn global add syncyarnlock
  2. 更新包 -yarn upgradeyarn upgrade --latest
  3. 将yarn.lock的更新版本同步到package.json -syncyarnlock -s