_YuLF 2025-02-17 21:36 采纳率: 70%
浏览 10
已结题

Docker构建前端镜像@vue-office/docx

【详细错误信息】
docker build时详细错误

img

【问题现象】
在隔了10天后重新docker build构建镜像该前端项目,出现了此问题,在以前正常进行docker build构建镜像,然后我查看了@Vue-office/docx和对应依赖未有更新,根据错误信息查看了每一个@Vue-office/docx版本的package.json都没有modules和exports(想来是不用配置exports和modules),只有main,下图为@Vue-office/docx的package.json

img

【相关配置信息】
[dockerfile]

img


[vite.config.ts]

img


[项目package.json]

img

【已尝试解决方法】
1.删除node_modules和pnpm-lock.yaml 然后 pnpm store prune、pnpm install,然后重新docker build
2.清除docker缓存重新进行docker build,docker image prune -a以及docker system prune -a
3.切换@vue-office/docx较低的版本以及依赖对应低版本
4.在@vue-office/docx下面的package.json定义对应的modules和exports找到对应的index.js
5.在vite.config.ts的alias定义@vue-office/docx的index.js入口

export default defineConfig({
  resolve: {
    alias: [
      {
        find: "@vue-office/docx",
        replacement: path.resolve(__dirname, "./node_modules/@vue-office/docx/lib/index.js"),
      },
    ],
  },
});

以及

import { defineConfig } from "vite";
import path from "path";

export default defineConfig({
  resolve: {
    alias: [
      {
        find: "@vue-office/docx",
        replacement: "@vue-office/docx", // 让 Vite 自动解析入口文件
      },
    ],
  },
});

【环境】
Docker version 27.4.0, build bde2b89
Docker Desktop 4.37.1
node 22
pnpm 9.5
vue 3.5
dockerfile的node:lts-slim镜像版本v20.18.0
报错插件@vue-office/docx@1.6.2

  • 写回答

5条回答 默认 最新

  • _YuLF 2025-02-18 11:35
    关注

    已解决,原因是项目构建配置dockerfile中使用的pnpm工具会从官网拉取最新版本,但官网更新后导致构建失败,现已固定版本,然后我固定了版本,npm install -g pnpm@9.15.2
    就构建镜像成功了,确定方向是我把所有本地package.json的版本都使用pnpm install --force 固定安装,然后本地pnpm run build正常成功,然后就去排查了docker build时的环境,发现pnpm每次都会拉取最新的版本,刚好最近pnpm更新了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月26日
  • 已采纳回答 2月18日
  • 创建了问题 2月17日