Laravel'de Assetlerin Bundle Edilmesi
-
Hocalar laravel(5.8)'de ve php de yeni olunca birde üzerine frontend'de vue filan kullanmayınca konunun içinden çıkamadım. Projemde bir sürü js plugini ve css dosyası mevcut. Bunları ilk başta resources klasörü altında barındırıyordum. Ancak bu css ve js dosyalarını minify, combine ve versionlamak istiyorum. Yani her sayafa include ettiğim js ve css dosyalarını tek bir js ve css dosyası olarak publish edip versionlayarak her deploy sonrasında kullanıcıların cachelerini yenilemelerini istiyorum. Laravel de bu işlem Mix ile yapılıyormuş. webpack.mix.js Css dosyalarında yaptığımda sorun olmuyor ancak js dosyalarında yaptığımda sorun oluyor.
webpack.mix.js üst kısım:
const mix = require('laravel-mix');
Css kısmını şu şekilde halledebiliyorum:
mix.styles([
'public/css/bootstrap.min.css',
'public/css/ui.css',
], 'public/css/master.min.css');
Js kısmını şu şekilde yapıyorum:
mix.js([
'public/js/jquery-3.4.1.min.js',
'public/js/bootstrap.bundle.min.js',
'public/js/script.js',
'public/plugins/jquery-validation-1.19.1/jquery.validate.min.js',
'public/plugins/jquery.blockUI/jquery.blockUI.js',
'public/plugins/popper/popper.min.js',
'public/plugins/sweetalert2/sweetalert2.all.min.js',
], 'public/js/master.min.js')
.version();
npm run production komutu ile assetleri birleştirmeye çalıştığımda şu şekilde hata veriyor.
ERROR in ./public/js/bootstrap.bundle.min.js
Module not found: Error: Can't resolve 'jquery' in 'c:\development\asd\public\js'
@ ./public/js/bootstrap.bundle.min.js 9:125-142 9:190-222
@ multi ./public/js/jquery-3.4.1.min.js ./public/js/bootstrap.bundle.min.js ./public/js/script.js ./public/plugins/jquery-validation-1.19.1/jquery.validate.min.js ./public/plugins/jquery.blockUI/jquery.blockUI.js ./public/plugins/popper/popper.min.js
Daha önce bu şekilde bundle işlemi yapan varmı?
-
-
js dosyalari degilde node modulleri olarak çeksene bu dependencyleri
window.$ = window.jQuery = require('jquery');
require('bootstrap');
böyle mesela. npm install --save ile de lazım olan modülleri yükle -
Mevzuyu çözdüm %99. mix.js sizin dediğiniz gibi require ıvır zıvır şeylerde kullanılıyormuş. vanialla js bundlemak için mix.scripts kullanmak gerekiyormuş. tekrar bu işe döndüğümde yazarım doğru cevabı ama bu şekilde çalıştı olarak gözüküyor şimdilik.