纱线构建在 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)。
当我使用 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)。