【问题标题】:yarn error Unknown workspace - Why does `yarn workspace` fail with `nohoist`ed packages?yarn error Unknown workspace - 为什么 `yarn workspace` 使用 `nohoist` 包失败?
【发布时间】:2020-03-29 06:11:15
【问题描述】:

问题

运行yarn workspace <nohoisted-package> start 得到error Unknown workspace "twitter-digester-frontend".

详情

根package.json

{
  "name": "x",
  "private": true,
  "version": "1.0.0",
  "workspaces": {
    "packages": ["x-backend"],
    "nohoist": ["x-frontend"]
  },
  "scripts": {
    "backend": "yarn workspace x-backend",
    "frontend": "yarn workspace x-frontend"
  }
}

命令

  • yarn workspace x-frontend start 失败,出现上述...Unknown workspace... 的错误。
  • yarn workspace x-backend start 有效(即,适用于 non-nohoisted 软件包)。

问题

为什么yarn workspace 使用nohoisted 包失败?

我不完全理解nohoist。我主要使用它是因为x-frontend 中的Angular CLI 在不使用nohoist 时无法读取node_modules。我假设它仅意味着 不要符号链接包 - 这就是为什么我认为没有理由 yarn workspace <nohoisted-package> <script> 不应该工作。

【问题讨论】:

    标签: angular angular-cli yarnpkg lerna yarn-workspaces


    【解决方案1】:

    你的根package.json 应该包含一个工作区数组:

    {
    ...
     "workspaces": [
        "example",
        "my-pkg-js"
      ]
    }
    

    要检查的第二件事是:yarn workspace <package> start <package> 代表你的 package.js 中的 name,例如:

    yarn workspace my-pkg-js start

    my-pkg-js/package.json 文件中的 name 属性应该类似于:

    {
    ...
     "name": "my-pkg-js"
    }
    

    【讨论】:

    • 谢谢。但是,这个问题太老了,我无法验证你的答案,这就是为什么我不能投票:(。但真诚地感谢!:))
    • 我的荣幸 ;) 编码愉快
    猜你喜欢
    • 2021-01-02
    • 2020-08-16
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    相关资源
    最近更新 更多