2

在根目录中运行yarn upgrade时,它只升级根目录的package.jsonand yarn.lock,但我需要升级workspace dependencied.

有没有办法做到这一点,除了使用yarn upgrade-interactive

4

3 回答 3

3

我找到了另一种选择

yarn workspace (workspace name) add (package name) (type of dependancy)

对于您需要升级的所有软件包。

然后

yarn install
于 2019-08-13T18:20:27.500 回答
3

这在纱线版本 2 中处理得更好。你可以做

yarn up react react-dom

它会知道工作区,或者添加-i交互模式,它会询问你对每个工作区中的每个依赖项升级做什么。

于 2020-06-18T09:09:14.460 回答
1

选项 a) 链接两个命令

您可以将两个命令链接在一起:

yarn upgrade -W && yarn workspace <workspace> upgrade

或升级特定软件包:

yarn upgrade <package> -W && yarn workspace <workspace> upgrade <package>

选项 b) 创建一个函数

在一个命令中作用于根目录和每个工作区。

对于许多工作区,或者如果您不想写两次包名称,您可以使用函数自动执行此操作。

要求:您需要安装jq

每个 shell 会话输入此行一次:

yarn_all() { yarn -W $@ && for w in $(yarn workspaces info -s | sed '1d;$d' | jq -r 'keys[]'); do yarn workspace $w $@; done; }

用法:yarn_all <command> [<package>]

例子:

yarn_all upgrade
yarn_all upgrade my-package
yarn_all upgrade my-package --registry http://localhost:4873

它也可以与其他命令一起使用,例如remove.

使用yarnv1.22.4 和jqv1.6测试

于 2020-07-11T10:50:58.040 回答