2017-08-12 101 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