Ya estoy familiarizado con laravel 5.1 mix (elixir), y recientemente decidí probar laravel 5.4 mix.
Mezclé mis bibliotecas en archivos de proveedores.
mix .styles([ './node_modules/bootstrap/dist/css/bootstrap.css', './node_modules/font-awesome/css/font-awesome.css' ], 'public/css/vendor.css') .js([ './node_modules/jquery/dist/jquery.js', './node_modules/bootstrap/dist/js/bootstrap.js', ], 'public/js/vendor.js') .disableNotifications() .version();E incluido proveedor en mi página.
<script src="{{ mix('js/vendor.js') }}" type="text/javascript" charset="utf-8" async defer></script>Pero, cuando quiero usar jQuery, tengo este error en la imagen a continuación. Antes, en laravel 5.1 lo hacía exactamente así.

¿Que tengo que hacer?
Simplemente descomente esta línea en su archivo assets/js/bootstrap.js :
window.$ = window.jQuery = require('jquery'); Y asegúrese de solicitar el archivo de arranque en sus assets/js/app.js de esta manera:
require('./bootstrap');mix.autoload({ 'jquery': ['window.$', 'window.jQuery'] })Tuve que agregar esto a mi webpack.mix.js
La solución que usa laravel mix es obligar a todos los módulos a usar la misma versión de jquery: este es mi código en la parte superior de webpack.mix.js:
mix.webpackConfig({ resolve: { alias: { 'jquery': path.join(__dirname, 'node_modules/jquery/src/jquery') } } });