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

Vue2升级Vue3时Vite报dep-scan插件读取length属性错误

问题根因

报错和/src/main.js文件本身无关,属于vite.config.js配置格式错误导致的初始化阶段异常:

  • Vite的resolve.alias数组要求每一项别名配置必须包含find(匹配规则)、replacement(替换目标)两个必填字段
  • 你当前配置中vue指向@vue/compat的别名项没有遵循该格式,直接写为{ vue: '@vue/compat' },导致Vite做依赖预构建扫描时,读取到的匹配规则为undefined,执行pattern.length逻辑时直接抛出类型错误
  • 错误发生在路径规则匹配阶段,还未进入实际文件查找流程,因此即使重命名、删除/src/main.js,报错也不会发生变化,和你之前推测的“模块无法定位main.js”无关。
修复方案

修改vite.config.js中的别名配置,将vue的别名项补全为标准的find/replacement结构即可,修正后的完整配置如下:

import { defineConfig } from 'vite';
import path from 'path';
import createVuePlugin from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [
    createVuePlugin({
      template: {
        compilerOptions: {
          compatConfig: {
            MODE: 2,
          },
        },
      },
    }),
  ],
  server: {
    port: 8080,
  },
  resolve: {
    alias: [
      // 补全vue别名的标准字段
      {
        find: 'vue',
        replacement: '@vue/compat',
      },
      {
        find: '@',
        replacement: path.resolve(__dirname, 'src'),
      },
    ],
  },
});
后续操作

配置修改完成后,重启Vite开发服务或重新执行构建命令,原dep-scan相关报错会直接消除,无需调整业务代码或入口文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 02:09:39