You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建Vue应用时出现文件找不到错误求助

问题排查:Docker构建Vue应用时文件找不到错误

问题现象

本地执行npm run build构建Vue应用完全正常,但Docker构建时出现文件找不到错误,具体错误信息如下:

------
 > [6/6] RUN npm run build:
#11 0.587
#11 0.587 > resto@0.0.0 build
#11 0.587 > vite build
#11 0.587
#11 1.706 vite v3.0.9 building for production...
#11 1.777 transforming...
#11 3.161 ✓ 289 modules transformed.
#11 3.161 [vite:load-fallback] Could not load /src/Views/Forget.vue (imported by src/router/index.js): ENOENT: no such file or directory, open '/src/Views/Forget.vue'
#11 3.161 error during build:
#11 3.161 Error: Could not load /src/Views/Forget.vue (imported by src/router/index.js): ENOENT: no such file or directory, open '/src/Views/Forget.vue'
------

相关配置文件

Dockerfile

from node:16
ENV port=8080
copy package*.json ./
run npm install
run npm install -g http-server
copy . ./
run npm run build
cmd http-server -p $port dist/

路由导入语句

import Forget from '@/Views/Forget.vue'

Vite配置文件

import { fileURLToPath, URL } from "url";

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';

export default defineConfig({
  base: '',
  plugins: [vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
});

实际文件路径

Forget.vue实际存储路径为./src/views/Forget.vue

解决方案

问题核心是文件系统大小写敏感差异:

  • 本地Windows/macOS默认是大小写不敏感的文件系统,能识别Views和views为同一目录;但Docker容器内的Linux系统是严格大小写敏感的,两者会被视为不同目录,导致构建时找不到文件。

解决步骤:

  1. 修改路由导入语句,将@/Views/Forget.vue改为@/views/Forget.vue(推荐,符合前端小写目录的通用规范)
  2. 或直接将src/views目录重命名为src/Views(不推荐,易引发其他大小写兼容问题)
  3. 重新执行Docker构建命令

预防措施

建议在本地开发时开启Vite的文件系统严格检查,提前发现这类问题:
在Vite配置中添加server.fs.strict: true:

export default defineConfig({
  // ...其他已有配置
  server: {
    fs: {
      strict: true
    }
  }
})

内容的提问来源于stack exchange,提问作者Rafael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:39:52