2017-08-12 60 views
2

使用的WebPack与Vue公司编译项目后,当我打开一个使用Vue的组件的页面,我得到:的WebPack无法装入Vue的组件

[Vue warn]: Failed to mount component: template or render function not defined.

,并在地方组件Vue呈现

<-- function (a, b, c, d) { return createElement(vm, a, b, c, d, true); } --> 

为什么会发生此错误?

注:I've created an MCVE for this problem.使用的具体的WebPack配置为:

module.exports = { 
    entry: __dirname + '/display.js', 
    output: { 
    filename: 'bundle.js' 
    }, 
    module: { 
    rules: [ { test: /\.vue$/, loader: 'vue-loader' } ] 
    } 
} 
+0

尝试改变'常量的Vue =需要('VUE /距离/ vue.common.js ')'到'const Vue = require('vue')'。有关详细信息,请参阅https://github.com/vuejs/vue-router/issues/713和https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only。 – ceejayoz

+0

这会导致'Vue不是构造函数'。我试过'dist'中的所有文件,但它们都不起作用。 – RedHatter

+0

你是否考虑过通过'vue-cli'开始使用其中一个默认模板? https://github.com/vuejs/vue-cli – ceejayoz

回答

3

它简单地归结于change of vue-loader

从版本13.0.0开始,vue-loader不再对输出进行标准化。你所要做的
const app = require('./app.vue').default

所以只是改变Child: require('./child.vue')display.jsChild: require('./child.vue').default,然后它会工作。

+1

谢谢。星期一我回到办公室时,我会看到这是否有效。 – RedHatter