我有两个独立的存储库(不是在单一存储库中),它们的工作方式就像一个魅力(构建和测试)。然而,一旦我将它们放入带有纱线工作区的单一存储库中,它就不再起作用了。
让我解释一下:我有一个 Angular 和一个 Node/TypeScript 存储库。在 Monorepo 中,当我运行
yarn test
时,我的节点/打字稿项目中的测试仍然有效,但角度测试导致架构验证失败,并出现以下错误:
所以,正如我们所知,
yarn workspaces
所有的node_modules都被提升到根目录,所以我决定关闭提升
...
"workspaces": {
"packages": [
"packages/*"
],
"nohoist": [
"**/ui",
"**/ui/**",
"**/core",
"**/core/**"
]
},
...
我删除了所有
node_modules
并尝试再次运行 yarn
。但是,这次软件包的安装已经失败,并显示以下消息:
error An unexpected error occurred: "ENOENT: no such file or directory, lstat....rimraf
我发现这个开放的问题可能是相同的,但没有提供解决方法。因此,如果有人知道解决此问题的方法,我真的很想知道?!干杯
有关更多详细信息,您可以查看存储库此处
我参加聚会有点晚了,但我遇到了一个非常类似的问题,所以,这里有一个可能的解决方案,以防万一它对任何人都有帮助。
TL;DR - 构建你的包并重试
就我而言,问题是由于
yarn
,我无法使用 ENOENT
安装任何新的依赖项。
事实证明,我需要首先构建我的软件包,否则yarn
会发现连接我的软件包的符号链接已损坏并且无法继续安装。
有趣的是,我试图添加新依赖项的项目不依赖于monorepo中的任何其他包,但这并不重要,而且
yarn
无论如何都失败了。