Proje: Okul Platform · Hub: Okul Platform — Decisions
Karar
package.json içinde:
"webpack": "5.94.0"Caret (^) veya tilde (~) YOK. Exact version pin.
Gerekçe
Tailwind v4 eklenirken package-lock.json regenerate edildi ve webpack ^5.88.2 → 5.106.2’ye atladı. webpack 5.95+ ProgressPlugin için stricter schema validation getirdi:
[webpack-cli] Invalid options object. Progress Plugin has been initialized
using an options object that does not match the API schema.
- options has an unknown property 'name' / 'color' / 'reporters' / 'reporter'
laravel-mix 6.0.49 kendi içinde webpackbar 5.0.2 kullanıyor; bu plugin yukarıdaki property’leri ProgressPlugin’e geçiriyor. webpack 5.95+ bu property’leri reddediyor → build patlıyor.
Alternatifler (reddedilen)
- laravel-mix upgrade → major version jump, konfigürasyon + plugin ekosistemi kırılır. Mix 7.0 yok; alternatif Vite migration olur, bu PR scope’u dışında.
- webpackbar upgrade → laravel-mix dep olarak pinleniyor, manuel override fragile.
- Caret range (
^5.94.0) → patch bump’ları alır ama minor bump (5.95+) yine kırabilir.
Maliyet
Security/performance patch’lerini kaçırırız. Ama webpack 5.x EOL’e yakın (6.0 yolda), pratikte bu trade-off kabul edilebilir. laravel-mix modernize edilince (veya Vite’a geçilince) kaldırılır.
Related
- 2026-04-16-tailwind-v4-oxide-ci-bindings — Lockfile regenerate’ın tetiklediği ikinci sorun
- Okul Platform — Decisions