2017-08-20 67 views
-1

我想用vue2分析我的项目的当前路由器配置。因为我想用cli来生成一个vue组件。在此之前,我必须加载当前的路由注册信息。但是当我在路由器目录下需要router.js时。节点抛出SyntaxError: Unexpected token import。我尝试了很多方法来解决它,但他们没有奏效。请告诉我加载我的路由器配置的正确方法。谢谢!如何使用node.js加载vue项目的.vue文件

 

    //to load router config 
    const routerPath = path.join(process.cwd(), 'src', 'router', 'index.js'); 

    if (existsSync(routerPath)) { 
     routes = require(routerPath) 
    } 

    //error 
    import Vue from "vue"; 
    ^^^^^^ 

    SyntaxError: Unexpected token import 
     at Object. (/Users/mosx/projects/mjb-cli/lib/check-components.js:28:33) 
     at Module._compile (module.js:570:32) 
     at Object.Module._extensions..js (module.js:579:10) 
     at Module.load (module.js:487:32) 
     at tryModuleLoad (module.js:446:12) 
     at Function.Module._load (module.js:438:3) 
     at Module.require (module.js:497:17) 
     at require (internal/module.js:20:19) 
     at Object. (/Users/mosx/projects/mjb-cli/bin/mjb-component:12:25) 
     at Module._compile (module.js:570:32) 

    // path/to/router/index.js 
    import Router from "vue-router"; 
    import Hello from "../components/Hello.vue"; 

    Vue.use(Router); 

    export default new Router({ 
     routes: [ 
      { 
       path: '/', 
       name: 'Hello', 
       component: Hello, 
       children: [ 
        { 
         path: 'child', 
         name: 'child', 
         component: Hello 
        } 
       ] 
      } 

     ] 
    }) 

+3

请发布与此相关的问题 – divine

+0

@divine的代码,很抱歉之前没有代码,现在我加入它 – ifmos

回答

0

虽然张贴在问题的代码的模块性是值得怀疑的, 我相信我的回答能解决你所面临的问题。
这不用..

要建立下面的代码,我利用VUE样板

vue init webpack-simple vue-cli 

然后,我安装VUE路由器包

npm install --save vue-router 

Main.js文件

import Vue from 'vue'; 
import {routes} from './routes'; 
import VueRouter from 'vue-router'; 
import App from './App.vue'; 

Vue.use(VueRouter); 
const router = new VueRouter({ 
    routes : routes, 
    mode : 'history' 
}) 

new Vue({ 
    el: '#app', 
    router : router, 
    render: h => h(App) 
}) 

Route.js文件

import Cricket from './components/Cricket.vue'; 
import Football from './components/Football.vue'; 
import Basketball from './components/Basketball.vue'; 
import Sports from './components/Sports.vue'; 
export const routes = [ 
    { 
     path: '/cricket', 
     component: Cricket 
    }, 
    { 
     path: '/football', 
     component: Football 
    }, 
    { 
     path: '/basketball', 
     component: Basketball 
    }, 
    { 
     path: '', 
     component: Sports 
    } 
];