如何修复纱线错误"未知工作区"?



问题

运行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有效(即,适用于-nohoisted包(

问题

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

我不完全理解nohoist。我之所以使用它,主要是因为x-frontend中的Angular CLI在不使用nohoist时无法读取node_modules。我认为这只意味着不符号链接包——这就是为什么我看不出yarn workspace <nohoisted-package> <script>不工作的原因。

package.json应该包含一个工作区数组的第一件事:

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

第二件需要检查的事情是,当您运行yarn workspace <workspace> start时,<workspace>代表包目录中package.json中的name。例如:

yarn workspace package-name start

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

{
...
"name": "package-name"
}

最新更新