Bonjour,
Voila je rencontre un petit problème avec mon code. J'ai un gros projet qui compile du sass, JS (es6) via w"ebpack encore.
Il y a 177 fichiers en tout et ça prend trop de temps en mode production (5min à 7min).
Le petit truc c'est que j'ai 61 fichiers js différents en fonction des pages de mon projet.
Tous imporent d'autres fichiers, ...
Pour les fichiers scss je n'en ai que 3 et j'utilise UglifyJS pour la minification (qui prend beaucoup de temps à s'éxécuter, quasiement la moitié du temps).
j'ai créé un fichier via createSharedEntry qui comprend mes modules les plus utilisés de npm comme selct2, jquery, bootstrap.
Auriez-vous une solution qui permet d'optimiser grandement ces temps de compilation ?
faut-il uniquement faire une seule entrée js via webpack et y mettre tous mes fichiers js ?
Merci d'avance pour vos réponses :)
Salut,
Il est conseillé de générer les sources en mode dev, et en mode production d'utiliser les builds...
Par exemple, en dev, tu vas utiliser le serveur npm (npm run dev-server) et ensuite lorsque le résultat te satisfait, tu build (npm run build) et là, ça va te générer les js/css dans public/build (enfin le répertoire que tu as défini). Ensuite tu pousses ton build via git (ou autre).
Sinon, pour tes optims, il y a une alternative à createSharedEntry, qui est d'utiliser splitEntryChunks(). Cela va découpler les scripts communs à plusieurs entrypoints et éviter de recharger plusieurs fois les mêmes scripts (ex: jquery). Perso je trouve ça plus souple que le createSharedEntry.
En espérant t'avoir aidé...
Hello,
Je viens de test le splitEntryChunks qui a résolu mon pb en terme de poids de fichiers et vendor rappelés à quasiement chaque fichier :)