Tengo un monorepo usando Lerna que intento construir con Gitlab CI. Ejecutar lerna run build localmente compila todo con éxito.
El Dockerfile que Gitlab intenta ejecutar se parece un poco a esto:
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 buildLo que resulta en los siguientes errores:
Cannot find module '@project/common' or its corresponding type declarations. import { SomeClass } from '@project/common';¿Hay algún paso que me estoy perdiendo? ¡Gracias por adelantado!
Pude solucionar este problema cambiando el Dockerfile. Ejecutar yarn antes de ejecutar lerna bootstrap y eliminar la yarn build resolvió los errores.
Mi Dockerfile ahora se ve así:
FROM node:16 AS common WORKDIR /usr/src/app RUN yarn global add lerna COPY . . RUN yarn RUN lerna bootstrap --include-dependenciesDefinitivamente puedo atribuir los errores a mi conocimiento limitado de Lerna, pero espero que esta respuesta pueda ayudar a otros con problemas similares.
¿Qué versión de lerna se usa localmente? Modifique su pregunta para incluir el resultado de learna info .
yarn global add learna instalará la última versión, que actualmente es v4.0.0.