“ENOENT:在带有纱线工作空间的 monorepo 中没有这样的文件或目录

问题描述 投票:0回答:1

我有两个独立的存储库(不是在单一存储库中),它们的工作方式就像一个魅力(构建和测试)。然而,一旦我将它们放入带有纱线工作区的单一存储库中,它就不再起作用了。

让我解释一下:我有一个 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

我发现这个开放的问题可能是相同的,但没有提供解决方法。因此,如果有人知道解决此问题的方法,我真的很想知道?!干杯

有关更多详细信息,您可以查看存储库此处

node.js angular yarnpkg lerna yarn-workspaces
1个回答
0
投票

我参加聚会有点晚了,但我遇到了一个非常类似的问题,所以,这里有一个可能的解决方案,以防万一它对任何人都有帮助。

TL;DR - 构建你的包并重试

就我而言,问题是由于

yarn
,我无法使用
ENOENT
安装任何新的依赖项。 事实证明,我需要首先构建我的软件包,否则
yarn
会发现连接我的软件包的符号链接已损坏并且无法继续安装。

有趣的是,我试图添加新依赖项的项目依赖于monorepo中的任何其他包,但这并不重要,而且

yarn
无论如何都失败了。

© www.soinside.com 2019 - 2024. All rights reserved.