在根目录中升级 yarn 不会升级 Workspace 依赖项
Upgrading yarn in root directory do not upgrade Workspace dependencies
在根目录运行yarn upgrade
上,只升级根目录的package.json
和yarn.lock
,但我需要升级workspace dependencied
。
除了使用 yarn upgrade-interactive
之外,还有其他方法吗?
我找到了替代方案
yarn workspace (workspace name) add (package name) (type of dependancy)
对于您需要升级的所有包。
然后
yarn install
这在 yarn 版本 2 中处理得更好。
在那里你可以做
yarn up react react-dom
并且它会感知工作空间,或者添加-i
用于交互模式,它会询问您在每个工作空间中对每个依赖项升级执行什么操作。
选项 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
。
使用 yarn
v1.22.4 和 jq
v1.6
进行测试
在根目录运行yarn upgrade
上,只升级根目录的package.json
和yarn.lock
,但我需要升级workspace dependencied
。
除了使用 yarn upgrade-interactive
之外,还有其他方法吗?
我找到了替代方案
yarn workspace (workspace name) add (package name) (type of dependancy)
对于您需要升级的所有包。
然后
yarn install
这在 yarn 版本 2 中处理得更好。 在那里你可以做
yarn up react react-dom
并且它会感知工作空间,或者添加-i
用于交互模式,它会询问您在每个工作空间中对每个依赖项升级执行什么操作。
选项 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
。
使用 yarn
v1.22.4 和 jq
v1.6