19

我有这样设置的工作区

"private": true,
  "workspaces": {
    "packages": [
      "packages/*"
    ],
    "nohoist": [
      "**/firebase-admin",
      "**/firebase-admin/**",
      "**/firebase-functions",
      "**/firebase-functions/**"
    ]
  },

在我的包目录中,我有一个文件夹common,其中包括自己的文件夹package.json等。

当我执行yarn workspaces run build它时,它会触发所有工作区的构建脚本。但是,如果我尝试使用yarn workspace命令来定位一个特定的工作区,就像yarn workspace common build我不断收到错误一样:

错误未知工作区“常见”。

这是我的输出yarn workspaces info

yarn workspaces v1.17.0
{
  "@gemini/cli": {
    "location": "packages/cli",
    "workspaceDependencies": [],
    "mismatchedWorkspaceDependencies": []
  },
  "@gemini/cloud-functions": {
    "location": "packages/cloud-functions",
    "workspaceDependencies": [
      "@gemini/common"
    ],
    "mismatchedWorkspaceDependencies": []
  },
  "@gemini/common": {
    "location": "packages/common",
    "workspaceDependencies": [],
    "mismatchedWorkspaceDependencies": []
  },
  "@gemini/tools": {
    "location": "packages/tools",
    "workspaceDependencies": [],
    "mismatchedWorkspaceDependencies": []
  }
}

我尝试将名称更改为 package/common 或 @gemini/common 但没有运气。

我在这里想念什么?

4

2 回答 2

29

当您想在特定工作空间上调用命令时,您应该使用在其 package.json 文件“名称”中设置的包名称。在您的情况下,它应该是:

yarn workspace @gemini/common build

我尝试将名称更改为 package/common 或 @gemini/common 但没有运气。

您不应该看到错误error Unknown workspace "@gemini/common".也许您遇到了其他错误?

于 2019-06-28T18:37:23.153 回答
0

如果您想build在工作区中运行脚本<workspace>,那么该命令的语法是

yarn workspace <workspace> build

例如,我的根目录中有以下内容package.json

  "workspaces": [
    "api",
    "app"
  ],

这样我就可以跑了yarn workspace api build

于 2019-06-28T20:06:03.123 回答