После нескольких часов ночных кошмаров поиск решения для чего-то, казалось бы, очень распространенного, просто круг по кругу в данный момент.
Недавно я изменил свой проект Laravel с использования gulp на Laravel Mix, SASS и т. Д., Все работает отлично, но мой JS не играет в мяч.
Все, что использует jQuery * в соответствии * в шаблоне blade / php происходит сбой с:
Uncaught ReferenceError: jQuery is not defined
webpack.mix.js (с выбором модулей):
let mix = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js').extract(
['jquery', 'foundation-sites', 'vue', 'toastr', 'jscroll', 'chosen-js', 'what-input']
);
mix.sass('resources/assets/sass/app.scss', 'public/css');
master.blade.php (метод извлечения разделяет их)
<script type="text/javascript" src="/js/manifest.js"></script>
<script type="text/javascript" src="/js/vendor.js"></script>
<script type="text/javascript" src="/js/app.js"></script>
app.js:
const jQuery = require('jquery');
// window.$ = global.jQuery = $;
// window.jQuery = jQuery;
const toastr = require('toastr');
const chosen = require('chosen-js');
const whatInput = require('what-input');
const Foundation = require('foundation-sites');
const Vue = require('Vue');
const jScroll = require('jscroll');
const mousetrap = require('mousetrap');
Вместо этого я попытался импортировать, просто требуя, оставляя требующий и используя метод автозагрузки, ничего не работает. Некоторые варианты скажут $ не определено Кроме того, просто не знаю, куда обратиться.
Может ли кто-нибудь направить меня в правильном направлении? Я много лет использовал Laravel с глотком, но только с ванильным JS.
В вашем app.js
вставьте следующее в конце строки
const jQuery = require('jQuery')
// other packages here
window.$ = window.jQuery = jQuery
Других решений пока нет …