2017-02-15 54 views
0

我正在使用Laravel 5.4和Semantic 2.2.7。這是我混Laravel 5.4和語義UI

mix.combine(['resources/libs/jquery/dist/jquery.min.js', 'resources/libs/semantic/dist/semantic.js'], 'public/js/vendor.js') 
.combine(['resources/libs/semantic/dist/semantic.min.css', 'resources/libs/font-awesome/css/font-awesome.min.css'], 'public/css/vendor.css') 
.js('resources/assets/js/scripts/login.validator.js', 'public/js/scripts.js') 
.less('resources/assets/less/style.less', 'public/css'); 

我讓我的JS庫在vendor.js有機結合。如果我後續從link登錄的例子,我得到的錯誤如下。

注:我檢查了使用視圖源,我可以將forms.js代碼映射到vendor.js文件中。 enter image description here

我需要在laravel中設置任何解決方案?

還有,爲什麼我的scripts.js中文件10343行,而我login.validator.js只有34行

+0

問題是jQuery被添加到js文件生成,如果我使用mix.js.我測試了單獨映射的js文件及其工作。 –

+0

嘗試從Google API等其他來源加載jQuery和其他第三方庫,而不是在最終輸出中混合使用 – Gntem

+0

它適用於這種情況。問題是,當我運行mix.js()laravel再次添加jQuery&Sizzle.js。不知道如何在運行mix.js時避免jquery的讀法 –

回答

0

可以使用的WebPack CommonsChunkPlugin避免jQuery的readdition,您可以在webpack.mix.js添加設置文件,請參閱Laravel組合custom webpack configuration

例子(未測試)

webpack.mix.js

... 
... 
mix.webpackConfig({ 
    entry: { 
     vendor: ["jquery", "other-lib"] 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
      name: 'vendor' 
     }) 
    ] 
}); 
0

你必須設置的jQuery爲global。 Webpack僅在需要時加載模塊,因此您必須使用autoload()才能使其在任何地方都能正常工作。

mix.autoload({ 
    jquery: ['$', 'window.jQuery'] 
});