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.25.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.