借用iview-admin框架写的一个项目,一开始是单页面的,现在需求关系,需要改为多页面形式。

问题描述

借用iview-admin框架写的一个项目,一开始是单页面的,现在需求原因,需要改为多页面形式。而之前的那套路由,报内存溢出的错误,直接没法调试。

问题出现的环境背景及自己尝试过哪些方法

现在是vue-cli3的版本。

相关代码

//vue.config.js 配置
const path = require('path')
const resolve = dir => {
  return path.join(__dirname, dir)
}
const BASE_URL = process.env.NODE_ENV === 'production'
  ? '/iview/'
  : '/'

module.exports = {
  pages: {
    index: {
      // entry for the page
      entry: 'src/main.js',
      template: 'public/index.html',
      // output as dist/index.html
      filename: 'index.html',
      chunks: ['sbupage']
  },
  sbupage: {
      entry: 'src/sbupage/main.js',
      // title: "main page",
      template: 'public/subpage.html',
      filename: 'sbupage.html',
  }
 },
  baseUrl: BASE_URL,
  lintOnSave: false,
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src')) 
      .set('_c', resolve('src/components'))
  },
}

目录
图片描述

相关的路由代码

{
  path: '/userManagement',
  name: 'userManagement',
  meta: {
    icon: 'md-person',
    title: '用户管理'
  },
  component: Main,
  children: [{
    path: 'abc',
    name: 'abc',
    meta: {
      icon: 'md-person-add',
      title: '123',
      notCache: true
    },
    component: () =>
      import('@/view/userManagement/abc.vue')
  },
  {
    path: 'abc2',
    name: 'abc2',
    meta: {
      icon: 'ios-people',
      title: '123',
      notCache: true
    },
    component: () =>
      import('@/view/userManagement/abc2.vue')
  },

只嵌套一个子路由是可以正常渲染,多一个子路由就报内存溢出。有大神知道是怎么回事吗?

这是报错的信息

图片描述

阅读 2.1k
2 个回答
新手上路,请多包涵

你解决了吗 ???

我现在也遇到了这个问题,找了好久都没头绪,但是有一点,如果我不加 pages 选项就是正常的,加上 pages 选项就报错,就算 pages 选项中只有一个 index 也不行,就想着肯定 pages 肯定添加一些其他的操作导致报错,无奈就去看了vue cli 官方文档,发现多了个preload-webpack-plugin这个插件

clipboard.png

删掉就好了,虽然不理解,但是正常工作。

chainWebpack: config => {
    Object.keys(pages).forEach(entryName => {
      config.plugins.delete(`preload-${entryName}`)
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题