Questions sur Webpack

Par Neewd, il y a 9 ans


Javascript NodeJS

Bonjour,

J'ai commencé mon petit projet avec Vue.js et dans la documentation, il est conseillé d'utiliser un bundler tel que Webpack ou Browserify.
J'ai donc regardé la vidéo de Graf' sur Webpack, mais j'ai quelques questions qui me viennent.

Personnellement, j'ai créé un serveur Express et je lance mongo etc via des tâches Grunt.
J'ai donc plusieurs fichiers JS :

Voilà mes petites incompréhensions sur Webpack.

Dans son tutoriel d'explication, Graf' n'avait qu'une page, et qu'un fichier "js".
Auriez-vous un exemple "parlant" d'une gestion Webpack avec Vue.js et Express ?

Merci à vous pour votre aide,

2 réponses

Pandazaur, il y a 9 ans

Bonsoir,

L'avantage de Webpack est qu'il te permet grâce au vue-loader de créer des fichier ".vue", qu'il incorpore un serveur avec Live-reload et des plugins en tout genre.

Tu peux très bien construire ton app avec ton système actuel, mais tu as tout de séparé et tu dois utiliser pas mal de resource différente. Webpack te permet d'avoir tout en un. Je pense que pour une grosse application, il est préférable d'utiliser un module bundler.

Personnellement j'utilise webpack, car grâce au vue-cli:

  • Il me crée la structure d'une application Vue.js très rapidement
  • Je peux structurer mon application grâce à ES6 (avec Babel) et les fichiers ".vue"
  • Je peux utiliser des préprocesseurs / moteurs de templates facilement grâce aux plugins Webpack
  • Une commande npm run build qui me compile tout ça pour la prod (compatible ES5 avec les autres navigateurs + minifié)
  • Un serveur avec hot-reload

Tu peux faire tout ca avec grunt ou gulp mais bon, c'est pas aussi pratique a mon avis

Neewd, il y a 9 ans

Merci Pandazaur,
Je me suis renseigné hier, et j'ai commencé à intégrer webpack à mon workflow et je suis tombé sur tout un tas d'erreur. J'ai notamment passé près de deux heures à me rendre compte que je n'avais pas entouré les "loaders" d'une balise "module" et je ne comprenais pas pourquoi mes "imports" n'étaient pas transpile correctement et étaient rejetés par le browser ...

Je me suis renseigné sur le vue-loader et j'vais bien décomposé mon projet à partir de maintenant, avant que ça parte en cacahuète et que ça devienne incontrôlable :D