vuejs / vue-cli

🛠️ webpack-based tooling for Vue.js Development
https://cli.vuejs.org/
MIT License
29.75k stars 6.33k forks source link

multipage RangeError: Maximum call stack size exceeded #3180

Closed flybbjcs70 closed 5 years ago

flybbjcs70 commented 5 years ago

Version

3.0.1

Reproduction link

https://github.com/flybbjcs70/vue-cli3-demo

Node and OS info

node v8.11.4 / Windows 7

Steps to reproduce

1、router.js

export const constantRouterMap = [
  {
    path: "/",
    name: "home",
    hidden: true,
    component: () => import(/* webpackChunkName: "home" */ "@/views/Home.vue")
  },
  {
    path: "/login",
    name: "login",
    hidden: true,
    component: () => import(/* webpackChunkName: "login" */ "@/views/Login.vue")
  }
];

const router = new Router({
  mode: "hash",
  routes: constantRouterMap
});

2、store.js 文件中应用router

 import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);
import { constantRouterMap } from "@/router"; //重点

const store = new Vuex.Store({
  state: {
    route: constantRouterMap
  }
});
export default store;

3、两个view文件都引用store

import store from "@/store";//重点
export default {
  name: "page",
  mounted() {}
};

4、vue.config.js文件

const path = require("path");

function resolve(dir) {
  return path.join(__dirname, dir);
}
module.exports = {
  // css: {
  //   extract: false
  // },
  pages: {
    index: {
      entry: "src/pages/index/main.js",
      template: "public/index.html",
      filename: "index.html",
      title: "Index Page"
      // chunks: ["chunk-vendors", "chunk-common", "index"]
    },
    subpage: {
      entry: "src/pages/subpage/main.js",
      template: "public/subpage.html",
      filename: "subpage/index.html"
    }
  },
  chainWebpack: config => {
    config.resolve.alias
      .set("@", resolve("src"))
      .set("scss", resolve("src/scss"))
      .set("assets", resolve("src/assets"))
      .set("components", resolve("src/components"));
  }
};

What is expected?

Compiled successfully

What is actually happening?

[demo]/[@vue]/preload-webpack-plugin/src/lib/extract-chunks.js:44:21


*升级vue -cli 到最新一样报错。

haoqunjiang commented 5 years ago

Duplicate of https://github.com/vuejs/vue-cli/issues/2463 preload 插件不支持循环引用,请参考这个评论去掉 preload 和 prefetch 插件。