【问题标题】:undefined is not an object (evaluating 'modules[moduleId].call') on using vue-cli/vue-router with layout-fileundefined 不是使用 vue-cli/vue-router 和 layout-file 的对象(评估'modules[moduleId].call')
【发布时间】:2026-02-16 12:15:01
【问题描述】:

我正面临这个问题:

undefined 不是对象(评估 'modules[moduleId].call')

这是文件树:

├── README.md
├── babel.config.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
│   ├── favicon.ico
│   └── index.html
├── src
│   ├── App.vue
│   ├── assets
│   │   ├── logo.png
│   │   └── tailwind.css
│   ├── components
│   │   └── HelloWorld.vue
│   ├── layouts
│   │   └── Layout1.vue
│   ├── main.js
│   ├── pages
│   │   └── Home
│   │       └── View.vue
│   ├── router
│   │   ├── home.js
│   │   └── index.js
│   └── store
│       └── index.js
├── tailwind.config.js
└── vue.config.js

这是路由器的index.js

import Layout1 from '@/layouts/Layout1'
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {
    path: '',
    component: Layout1,
    children: [{
      path: '/',
      component: () => import(/* webpackChunkName: "home-view" */ '@/pages/Home/View.vue')
    }
    ]
  }]
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

这是vue.config.js

module.exports = {
  configureWebpack: {
    output: {
      filename: () => (process.env.VUE_CLI_MODERN_MODE && !process.env.VUE_CLI_MODERN_BUILD) ? '[name].[hash:8].js' : '[name]-legacy.[hash:8].js'
    }
  }
}

错误消息没有多大帮助。所以没有找到一些模块,但所有路径都是正确的。你们有人知道我在这里搞砸了什么吗?

【问题讨论】:

  • 动态导入返回一个承诺,也许是这样? component: async () => await import(/* webpackChunkName: "home-view" */ '@/pages/Home/View.vue')
  • 您找到适合您的解决方案了吗? @Ifaruki 的评论是否帮助您修复了错误?

标签: vue.js webpack vuejs2


【解决方案1】:

CMD+ALT+E 然后刷新 CMD+R。[在此处输入链接描述][1]

[modules[moduleId] is undefined error is unhelpful #5429]:https://github.com/webpack/webpack/issues/5429

【讨论】: