cannot redefine $router的问题源头怎么找

项目是vue-cli搭建的SAP,用npm run dev运行没有报错,用npm run build之后将生成的js放到erb里就报cannot redefine $router,看了一些回答说是vue router被定义了两次,或者vue被打包了两次,但是我的analyzer显示我只打包了一次vue
analyzer显示只打包了一个vue
我在以下文件中有以下代码与vue和vue-router相关
main.js中

import Vue from 'vue'
import App from './App'
import store from './store'
import router from './router'

import CSRFToken from './assets/js/csrf-token.js'
import "./assets/css/bootstrap.min.css"
import "./assets/css/style.css"

...

let app = new Vue({ 
  el: '#app',  
  router,
  store,
    template: '<App/>',
  components: { App },
})

router/index.js中

import Vue from 'vue'
import VueRouter from 'vue-router'
import Index from '@/Index'
import Explore from '@/Explore'
import Question from '@/Question'
import NewQuestion from '@/NewQuestion'
import Notification from '@/Notification'
import Dashboard from '@/Dashboard'
import Dashboard_default from '@/Dashboard_default'
import test from '@/test'

Vue.use(VueRouter)

export default new VueRouter({
...
})

store/index.js中

import Vue from 'vue'
import Vuex from 'vuex'
import router from '../router'

Vue.use(Vuex)

export default new Vuex.Store({
...
})

烦请各位大佬指点一下看看是哪里出了问题

阅读 9.2k
3 个回答

全局搜索一下'vue-router'这个看看,放浏览器报不报错呢?至于打包的问题,相同的包(不同版本不算)多次引用在同一个bundle里是不会重复打包的。

请问以下,analyzer 是什么?

webpack.base.conf.js中添加过滤掉依赖
module.exports = {

externals: {
    'vue': 'Vue',
    'vue-router': 'VueRouter',
    'vuex': 'Vuex'
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题