CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Comment Webpack a pu percer ?

Childermass
Childermass
Niveau 9
03 juillet 2016 à 17:02:25

Je viens de lire quelques tutoriels sur Webpack et c'est ouf à quel point c'est incroyablement complexe et compliqué pour n'apporter basiquement rien de plus que ce qui se faisait avant :ouch:

Comment une techno aussi lourde, lente, qui soit aussi casse-couilles à configurer (faire une config Webpack valable et qu'on a pas besoin de modifier à chaque changement dans le code ça relève de l'exploit) a pu réussir à s'imposer sur le marché ?

C'est moi qui loupe un truc par rapport à la valeur ajoutée de Webpack ou quoi ?

Childermass
Childermass
Niveau 9
03 juillet 2016 à 17:04:01

Sans compter le côté inmaintenable et magique d'une conf webpack

Pseudo supprimé
Pseudo supprimé 03 juillet 2016 à 23:03:37

Salut,

Ce qui se passe quand tu enregistres un fichier (JS par exemple) avec gulp, grunt, brunch, npm : toute la tâche associée au fichier est exécutée. Tous les fichiers JS associées sont recompilés de bout en bout : analysés, lintés, compressés, concaténés, sourcemapés, etc. Si tu utilises browserify ou livereload avec, ton navigateur est rechargé. C'est lourd, et long.

Ce qui se passe quand tu enregistres un fichier (JS par exemple) avec Webpack : La portion modifiée seulement est mise à jour par rapport à avant. Tous les fichiers ne sont pas recompilés, analysés, lintés, compressés, concaténés, sourcemapés, etc. Juste la partie qui a été modifiée. Ton navigateur n'est pas rechargée, la partie modifiée est mise à jour localement. C'est léger et rapide.

Grosso modo, c'est ça.

Oui, Webpack peut s'avérer plus complexe à mettre en place qu'une config gulp/grunt/brunch/autre (encore que tu n'as peut-être jamais vu de config gulp/grunt/brunch/autre bien lourde). Mais ce n'est pas plus complexe à maintenir, et on n'a pas besoin de la modifier à chaque changement de code — du moins, pas plus qu'avec un autre task-runner (car oui, devoir modifier la tâche en cours de projet, ça arrive).

Mais surtout, tu oublies effectivement un point : comme pour une config grunt/gulp/brunch/autre, tu la fais une fois, et tu t'en ressers ensuite pour tous tes projets. Ce n'est pénible qu'une fois, c'est réutilisable à l'infini.

Message édité le 03 juillet 2016 à 23:04:30 par Pseudo supprimé
Childermass
Childermass
Niveau 9
03 juillet 2016 à 23:44:06

Mais surtout, tu oublies effectivement un point : comme pour une config grunt/gulp/brunch/autre, tu la fais une fois, et tu t'en ressers ensuite pour tous tes projets. Ce n'est pénible qu'une fois, c'est réutilisable à l'infini.

Ca c'est faux, on avait globalement la même idée dans le monde Java avec ant (écrivez votre config XML bien chiante une seule fois et réutilisez la sur tous vos projets) sauf que c'est faux. Non seulement ça doit être mis à jour en permanence, ce qui fait qu'on perd un temps monstre à la maintenance vu que les fichiers de base sont incroyablement difficiles à comprendre.

Après Maven, puis Gradle sont arrivés, avec l'idée de "convention over configuration". Comment on peut avoir autant de retard dans le monde JS ? Me dites pas qu'un outil convention over configuration est impossible en JS, j'y croirais pas. tout le monde se dit "oui mais mon projet est différent" sauf que non, tous les projets sont les mêmes : des sources JS, du CSS, des trucs un peu custom comme du JSX, HAML, SASS, TypeScript, whatever, mais basiquement l'idée est la même : on a des sources à un endroit et on veut les bundler a un autre endroit. Comment on a pu se dire à un moment qu'un truc comme Webpack était une bonne idée plutôt qu'un outil qui imposerait une arborescence ?

Childermass
Childermass
Niveau 9
03 juillet 2016 à 23:49:06

Pour la partie "reload atomique" juste des fichiers modifiés ok, c'est effectivement un avantage. Mais quand on sait que Maven, et même GNU make le font depuis 15 ans et 40 ans respectivement, ça force quand même à se poser des questions. Pourquoi refaire exactement les erreurs du passé ? Autoriser d'écrire les fichiers de conf dans un general purpose language ça a toujours été une erreur, c'est aberrant de voir qu'elle est toujours faite et que les gens présentent encore ça comme un avantage :doute:

Message édité le 03 juillet 2016 à 23:50:59 par Childermass
Pseudo supprimé
Pseudo supprimé 04 juillet 2016 à 04:01:06

Ca c'est faux, on avait globalement la même idée dans le monde Java avec ant (écrivez votre config XML bien chiante une seule fois et réutilisez la sur tous vos projets) sauf que c'est faux

Ha merde. Heureusement que tu me le dis, ça fait bientôt trois ans qu'on réutilise une config tip top (et updatée régulièrement) à chaque nouveau projet dans ma boite (environs 2 par semaines). J'avais jamais remarqué que ça ne marchait pas, mais maintenant que tu me le dis, j'en prends pleinement conscience !

Bon, sarcasmes mis à part, je ne sais pas :

Comment on peut avoir autant de retard dans le monde JS

Et je ne sais pas non plus :

Pourquoi refaire exactement les erreurs du passé ?

Mais peut-être qu'en fait, ce qui parait être une erreur ou un problème n'en est pas vraiment ? Peut-être que les besoins du web sont très différents des besoins de Java ? Peut-être que Java est un langage foireux :hap: ?

Du reste, tu as raison : tous les projets sont basiquement foutus comme ça : un dossier sources, un dossier dist. Bien. Et alors, quel est le rapport avec webpack, exactement ? Webpack n'empêche en rien d'avoir une telle configuration. Je ne comprend pas ce qui te pose problème. Absolument rien n'empêche de faire de la "convention over configuration" avec webpack, gulp, grunt, brunch, npm…

Mais si aucun outil ne convient à ton usage, je t'encourage vivement à créer de nouveaux outils révolutionnaires dont toute la communauté du web (et toi le premier) pourra jouir. :)

el_khomri
el_khomri
Niveau 7
04 juillet 2016 à 22:53:11

webpack + ES6 + Angular :bave:

Pseudo supprimé
Pseudo supprimé 05 juillet 2016 à 00:45:52

VueJs* :oui:

lisarael
lisarael
Niveau 13
05 juillet 2016 à 15:00:05

C'est la journée name-dropping de stack ?!

ES2015 + gulp & babel & browserify + React + Redux :cute:

Avec un back qui prend du GraphQL.

Tacha-tepoilu
Tacha-tepoilu
Niveau 12
05 juillet 2016 à 16:50:10

Le 03 juillet 2016 à 23:03:37 warpShadow a écrit :
quand tu enregistres un fichier (JS par exemple) avec Webpack : La portion modifiée seulement est mise à jour par rapport à avant. Tous les fichiers ne sont pas recompilés, analysés, lintés, compressés, concaténés, sourcemapés, etc. Juste la partie qui a été modifiée. Ton navigateur n'est pas rechargée, la partie modifiée est mise à jour localement. C'est léger et rapide.

En sachant que la majorité (voir la totalité ?) des compilateurs récents évitent de compiler des fichiers non modifiés pour accélérer le tout. Du coup c'est un gain de temps, autant l'appliquer partout.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment