Docker构建执行yarn run build时出现Webpack报错问题求助
问题根因及修复方案
报错信息中的Module not found: Error: Can't resolve './src' in '/src'核心原因是Dockerfile的指令执行顺序错误:执行yarn run build前,仅复制了package.json和yarn.lock两个文件,项目的src源码目录、webpack配置文件等都还没有被复制到容器的工作目录下,webpack执行构建时自然找不到对应的入口文件。
修复步骤
- 调整Dockerfile的指令顺序,将
COPY . .移动到yarn run build之前,确保构建前所有源码和配置文件都已就位 - 可选:webpack的mode警告可以通过在webpack配置中显式添加
mode: 'production'(或development)解决,也可以在build命令中添加参数yarn run build --mode production消除警告
修正后的Dockerfile示例:
FROM node:12.10 WORKDIR /src COPY package.json package.json COPY yarn.lock yarn.lock # 系统依赖安装 RUN apt-get update && \ apt-get -y install libcairo2-dev \ libpango1.0-dev \ libjpeg-dev \ libgif-dev \ librsvg2-dev RUN yarn install # 先复制所有项目文件,再执行构建 COPY . . RUN yarn run build EXPOSE 3000 CMD ["node", "./server"]
额外说明
如果调整顺序后仍有打包异常,可检查webpack配置中的入口路径是否和项目实际目录结构匹配,确认入口文件的相对路径设置正确。
内容的提问来源于stack exchange,提问作者Blake Lucey
相关产品推荐
相关产品推荐

