При импорте Vue Router из файла JavaScript возникает ошибка «Module Parse Failed» - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить доступ к маршрутизатору в перехватчике ax ios, но когда я импортирую файл в файл .js Ax ios, возникает ошибка Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders > <template>.

Здесь пример маршрутизатора. js файл:

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: require('@/views/Settings.vue'),
          }
     ]
};
export default new Router(router);

И файл перехватчика содержит:

import router from './router';

1 Ответ

1 голос
/ 31 марта 2020

Почему вы используете 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' });
...
...