Почему вы используете require('@/views/Settings.vue')
?
Вместо этого попробуйте использовать функцию import
.
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
const router = {
base: process.env.BASE_URL,
routes: [
{
path: '/settings',
name: 'settings',
component: () => import('@/views/Settings.vue'),
},
],
};
export default new Router(router);
PS: Ответьте на ваш комментарий. В файле main.js
экспортируйте переменную экземпляра:
import Vue from 'vue';
import App from './App.vue';
import router from './router';
Vue.config.productionTip = false;
let vm = new Vue({
router,
render: h => h(App),
}).$mount('#app');
export default vm; // ATENTION HERE
В файле axios.js
импортируйте main.js
и получите доступ к $router
:
import vm from './main.js';
...
// YOUR INTERCEPTOR
vm.$router.push({ name: 'settings' });
...