2017-02-15 6 views
0

Я использую Laravel 5.4 и Semantic 2.2.7. Вот мой миксLaravel 5.4 и Semantic 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

попытайтесь загрузить jQuery и другие сторонние библиотеки из других источников, таких как API Google, и не смешивать их в конечном выпуске – Gntem

+0

В этом случае он работает. Проблема в том, что когда я запускаю mix.js(), laravel снова добавляет jQuery & Sizzle.js. Не знаю, как избежать выполнения jquery при запуске mix.js –

ответ

0

вы можете использовать WebPack CommonsChunkPlugin, чтобы избежать Jquery readdition, Вы можете добавить настройку в webpack.mix.js файл, см. Laravel mix 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'] 
});