diff --git a/packages/@vue/cli-service/generator/index.js b/packages/@vue/cli-service/generator/index.js index d12dc0cd75..b31d2f7c42 100644 --- a/packages/@vue/cli-service/generator/index.js +++ b/packages/@vue/cli-service/generator/index.js @@ -1,5 +1,7 @@ module.exports = (api, options) => { - api.render('./template') + api.render('./template', { + doesCompile: api.hasPlugin('babel') || api.hasPlugin('typescript') + }) api.extendPackage({ scripts: { diff --git a/packages/@vue/cli-service/generator/router/index.js b/packages/@vue/cli-service/generator/router/index.js index 93a41c18b8..8bae0a3010 100644 --- a/packages/@vue/cli-service/generator/router/index.js +++ b/packages/@vue/cli-service/generator/router/index.js @@ -7,7 +7,8 @@ module.exports = (api, options = {}) => { } }) api.render('./template', { - historyMode: options.routerHistoryMode + historyMode: options.routerHistoryMode, + doesCompile: api.hasPlugin('babel') || api.hasPlugin('typescript') }) if (api.invoking) { diff --git a/packages/@vue/cli-service/generator/router/template/src/router.js b/packages/@vue/cli-service/generator/router/template/src/router.js index d74392342f..967e7b66fc 100644 --- a/packages/@vue/cli-service/generator/router/template/src/router.js +++ b/packages/@vue/cli-service/generator/router/template/src/router.js @@ -21,7 +21,13 @@ export default new Router({ // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. + <%_ if (doesCompile) { _%> component: () => import(/* webpackChunkName: "about" */ './views/About.vue') + <%_ } else { _%> + component: function () { + return import(/* webpackChunkName: "about" */ './views/About.vue') + } + <%_ } _%> } ] }) diff --git a/packages/@vue/cli-service/generator/template/src/main.js b/packages/@vue/cli-service/generator/template/src/main.js index fca74cfc96..472e491629 100644 --- a/packages/@vue/cli-service/generator/template/src/main.js +++ b/packages/@vue/cli-service/generator/template/src/main.js @@ -4,5 +4,9 @@ import App from './App.vue' Vue.config.productionTip = false new Vue({ - render: h => h(App) + <%_ if (doesCompile) { _%> + render: h => h(App), + <%_ } else { _%> + render: function (h) { return h(App) }, + <%_ } _%> }).$mount('#app')