Lerna error: cannot find module during CI build

Lerna error: cannot find module during CI build

我有一个使用 Lerna 的 monorepo,我试图用 Gitlab CI 构建它。 运行 lerna run build 在本地成功构建所有内容。

Gitlab 尝试执行的 Dockerfile 看起来有点像这样:

FROM node:16 AS common
WORKDIR /usr/src/app
RUN yarn global add lerna
COPY . . 

RUN lerna bootstrap --include-dependencies
RUN lerna link

RUN yarn

# yarn build === lerna run build
RUN yarn build

这会导致以下错误:

Cannot find module '@project/common' or its corresponding type declarations.
import { SomeClass } from '@project/common';

有没有我遗漏的步骤?提前致谢!

本地使用的是哪个版本的lerna?修改您的问题以包括 learna info.

的输出

yarn global add learna 将安装最新版本,当前为 v4.0.0。

我能够通过更改 Dockerfile 来解决这个问题。 运行 yarn 在 运行 lerna bootstrap 之前删除 yarn build 解决了错误。

我的 Dockerfile 现在看起来像这样:

FROM node:16 AS common
WORKDIR /usr/src/app
RUN yarn global add lerna
COPY . . 

RUN yarn
RUN lerna bootstrap --include-dependencies

我可以肯定地将这些错误归因于我对 Lerna 的了解有限,但我希望这个答案仍然可以帮助其他遇到类似问题的人。