纱线构建在 docker 中不起作用,打字稿错误

Yarn build is not working in docker, typescript error

当我使用 yarn build 自己构建项目时它工作正常,但是当我构建 docker 容器时它给我打字稿错误。一周前一切正常。

No overload matches this call.
#12 97.88   Overload 1 of 2, '(props: InfiniteScrollProps | Readonly<InfiniteScrollProps>): InfiniteScroll', gave the following error.
#12 97.88     Type 'React.ReactNode' is not assignable to type 'import("/app/node_modules/@types/styled-components/node_modules/@types/react/index").ReactNode'.
#12 97.88   Overload 2 of 2, '(props: InfiniteScrollProps, context: any): InfiniteScroll', gave the following error.
#12 97.88     Type 'React.ReactNode' is not assignable to type 'import("/app/node_modules/@types/styled-components/node_modules/@types/react/index").ReactNode'.  TS2769

我的docker文件

FROM node:16-alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
RUN yarn
COPY . ./

ARG REACT_APP_BASE_URL

ENV REACT_APP_BASE_URL $REACT_APP_BASE_URL

RUN CI=false yarn run build

# production environment
FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html
COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

正如@David Maze 已经回答的那样,这可能是由于您的包裹不匹配。我们在 NPM 上遇到了类似的问题,我们也必须通过复制锁定文件来解决它。

COPY package.json package-lock.json .npmrc ./

除了确保您在本地和 CI server/build 图像上使用相同的节点版本之外,版本之间的某些包可能不同(节点 12 - 16,我们遇到了一些问题本地开发人员 运行 10 或 12,CI 系统在 16)。