我正在使用默認的Laravel 5.3安裝程序 - 全新安裝,默認配置爲Vue.js 2.0。如何在Laravel 5.3中使用Vue.js 2.0的組件中使用外部html模板
隨着Laravel 5.1和Vue.js 1.x,我可以很容易地定義組件,並使用browserify
進行編譯。
Vue.component('test-component', require('./test-component');
/* test-component.js */
export default{
template:require('./test-component.template.html')
}
/* test-component.template.html */
<div class="test-component">
<h1> Test Component <h1>
</div>
然而,與Vue公司2,默認爲webpack
(雖然browserify
也可以,但不能得到它的工作和webpack
似乎更好)。但我無法使配置工作。
我已經試過各種配置,最後我有這在我的gulp.js文件
const elixir = require('laravel-elixir');
require('laravel-elixir-vue-2');
var config = {
module:{
loaders:[
{
test: /\.html$/,
loader: 'vue-loader'
}
]
}
};
elixir(mix => {
mix.sass('app.scss')
.webpack('app.js',null, null, config);
});
現在我沒有得到任何錯誤,在編譯時gulp webpack
但是當我嘗試在瀏覽器中查看網頁時,不顯示該組件並有一個錯誤/警告在控制檯
vue.js?3de6:513[Vue warn]: invalid template option:[object Object]
(found in component <test>)
vue.js?3de6:4085Uncaught TypeError: Cannot read property 'child' of null(…)
我app.js主入口文件(Laravel提供的默認)
require('./bootstrap');
Vue.component('test-component', require('./components/test-component'));
const app = new Vue({
//el: '#app',
}).$mount('#app');
我錯過了什麼?任何指針將不勝感激。
非常感謝。自2天以來,我一直在爲此苦苦掙扎。我曾用'vue-html-loader'嘗試過,但沒有奏效。現在它使用'import'語句,但不能與'Vue.component('test-component',require('./ test-component')。default);'一起工作。仍然檢查我的代碼是否有任何錯別字。 – Donkarnash
很高興幫助你,Sir @Donkarnash :) – Alfa
我的不好,我有一個錯字。它可以和'import'以及'Vue.component('test-component',require('./ test-component')。default);'一起使用。再次感謝你。 – Donkarnash