【问题标题】:Upgrading yarn in root directory do not upgrade Workspace dependencies升级根目录下的 yarn 不会升级 Workspace 依赖
【发布时间】:2019-06-20 08:14:18
【问题描述】:

在根目录运行yarn upgrade时,只升级根目录的package.json和yarn.lock,但我需要升级workspace dependencied。

除了使用yarn upgrade-interactive之外,还有其他方法吗?

【问题讨论】:

    标签: node.js yarnpkg lerna yarn-workspaces


    【解决方案1】:

    我找到了替代方法

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

    所有你需要升级的包。

    然后

    yarn install
    

    【讨论】:

      【解决方案2】:

      这在 yarn 版本 2 中处理得更好。 在那里你可以做

      yarn up react react-dom
      

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

      【讨论】:

      • 我使用 yarn v1,并没有阅读 10 英里长的迁移文档只是为了运行 yarn up。
      【解决方案3】:

      选项 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 &lt;command&gt; [&lt;package&gt;]

      示例:

      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 测试

      【讨论】:

        猜你喜欢
        • 2011-02-21
        • 2013-06-17
        • 2020-12-06
        • 1970-01-01
        • 2011-04-03
        • 2021-06-11
        • 1970-01-01
        • 2021-06-03
        • 1970-01-01
        相关资源
        最近更新 更多