如何使用Yarn指定单个工作区?工作区识别失败问题求助
解决Yarn Workspace指定单个工作区报错的问题
看起来你踩了Yarn Workspace一个常见的小坑——混淆了工作区的文件夹名称和实际包名!
问题根源
从你贴出的yarn workspaces info输出能明确看到,packages/common对应的正式包名是@gemini/common,而不是你尝试的common或者packages/common。Yarn的workspace命令只认子包package.json里定义的name字段值,不认文件夹名或者路径。
正确的命令
你只需要用完整的包名来执行build命令就能解决问题:
yarn workspace @gemini/common build
为什么之前的尝试都失败了?
- 用
common:这是文件夹的名字,但Yarn不把文件夹名当作工作区的标识,它只认每个子包package.json里的name字段。 - 用
packages/common:Yarn的workspace命令不接受路径作为参数,必须使用注册的包名。
小验证技巧
你可以打开packages/common/package.json查看name字段,肯定能看到它的值就是@gemini/common,和yarn workspaces info的输出完全匹配。另外,以后如果不确定工作区的正确名称,直接跑yarn workspaces info就能看到所有可用的工作区及其完整包名啦。
内容的提问来源于stack exchange,提问作者Thijs Koerselman
相关产品推荐
相关产品推荐

