Partager cet article :

Blog
Aug 07, 20234 min read

Laravel Mix - un wrapper simple et puissant autour de Webpack

Stefani Tashkova

Développeur junior

Laravel Mix - un wrapper simple et puissant autour de Webpack

Laravel Mix

Nous allons parler de Laravel Mix. Pour mieux le comprendre, nous allons commencer par expliquer ce qu'est Webpack.

Webpack est un bundler de modules incroyablement puissant qui prépare votre JavaScript et vos actifs pour le navigateur. Mix est donc une fine couche au-dessus de webpack qui sert à construire dynamiquement votre configuration Webpack. Bien que Laravel Mix ait été conçu à l'origine pour les projets Laravel, il peut bien sûr être utilisé pour n'importe quel type d'application.

Vue d'ensemble

La dernière version de Laravel Mix est la version 6 et nécessite des dépendances compatibles avec Webpack 5 ou PostCSS 8. C'est un outil gratuit qui optimise et minifie automatiquement vos assets lors de la construction pour la production avec la commande npx mix --production, dont nous parlerons plus tard.

Laravel Mix est également livré avec un support basique des typescript et View, et pour aider à la mise en cache à long terme, mix fournit la méthode mix.version(). Avec la version activée, un ID de chaîne de requête unique sera ajouté à vos actifs chaque fois que votre code est compilé, et lors de la compilation, nous verrons les noms hachés dans le fichier mix-manifest.json. Un autre grand avantage de l'API mix est que nous pouvons isoler ou extraire les bibliothèques des fournisseurs dans leurs propres fichiers, ce qui se traduira bien sûr par un fichier app.js beaucoup plus petit. Avec le remplacement de modules à chaud, nous pouvons échanger, ajouter ou supprimer des modules pendant l'exécution d'une application sans avoir à la recharger complètement, et tout ce que nous devons faire est d'exécuter à partir de la ligne de commande npx mix watch --hot pour démarrer un serveur node et surveiller notre bundle pour les changements.

Mix fournit la commande mix.css() pour la compilation CSS de base et l'écosystème du plugin iPostCSS dans le cadre de notre compilation, et nous avons également des options pour la compilation Sass et Less. Par défaut, Mix achemine toutes nos feuilles de style CSS à travers le populaire plugin Autoprefixer PostCSS. Ainsi, nous sommes libres d'utiliser la dernière syntaxe CSS 3 en sachant que tous les préfixes nécessaires aux navigateurs seront appliqués automatiquement. Un concept clé à comprendre est que Mix et Webpack réécriront toutes les URLs avec des chemins relatifs dans nos feuilles de style, mais les chemins absolus seront toujours exclus de la réécriture d'URL.

Étapes de l'installation

Nous verrons ici comment installer et configurer Laravel Mix.

Tout d'abord, nous devons installer Mix via npm ou yarn.

npm install laravel-mix --save-dev

yarn add laravel-mix

La deuxième étape consiste à créer un fichier de configuration de mixage nommé webpack.mix.js

touch webpack.mix.js

Nous y définissons ensuite notre compilation. Dans cet exemple, nous définissons notre chemin public et utilisons la compilation mix sass.

const mix = require('laravel-mix');
mix.setPublicPath(`dist`);
mix.sass('resources/scss/app.scss', `dist/css`);
mix.js('resources/js/app.js', 'dist/js')

Enfin, il ne nous reste plus qu'à lancer une commande npx mix pour déclencher le build Webpack approprié.

Commandes CLI utiles

  • Compilation dans un environnement local

    npm mix
  • Surveiller les actifs pour détecter les changements

    montre npx mix
  • Sondage

    npx mix watch--watch-options-poll
  • Remplacement du module chaud

    npx mix watch --hot
  • Compilation pour la production

    npx mix --production
  • Personnaliser le chemin de configuration du mixage

    npx mix --mix-config=build/webpack.mix.js -production

Caractéristiques utiles

  • Mix fournit d'autres fonctionnalités utiles, par exemple si nous avons des bibliothèques de fournisseurs qui doivent rester séparées de notre bundle webpack principal, nous pouvons utiliser mix.combine() pour fusionner ou concaténer plusieurs fichiers en un seul fichier appelé par exemple merged.js.
  • Une autre fonctionnalité intéressante est browsersync, qui surveille automatiquement les modifications apportées à nos fichiers et les injecte dans le navigateur, sans qu'une actualisation manuelle ne soit nécessaire.
  • Dans certains cas, il peut s'avérer plus facile de descendre d'un niveau et de surcharger directement la configuration webpack sous-jacente et mix fournit la commande mix.webpackConfig() pour nous permettre de le faire.
  • Examinons maintenant les crochets d'événements. Dans certains scénarios, nous pouvons avoir besoin d'exécuter un élément de logique avant que la compilation ne commence. Par exemple, si nous avons besoin de copier un répertoire ou de déplacer un fichier, la fonction mix.before() le permet, et Mix ne commencera pas sa compilation tant que tous les hooks n'auront pas été entièrement résolus. D'autre part, nous pouvons exécuter un morceau de logique après que Webpack a terminé sa compilation avec la méthode mix.after(). Par exemple, si vous souhaitez enregistrer une liste de tous les actifs compilés.

Pour plus d'informations, vous pouvez consulter la documentation officielle de Laravel Mix.

S'ABONNER À NOTRE NEWSLETTER

Partager cet article :

S'ABONNER À NOTRE NEWSLETTER

Articles de blog connexes

    Pourquoi les startups hésitent à travailler avec une agence de développement de logiciels sur mesure - et comment nous répondons à toutes leurs préoccupations

    Blog

    Pourquoi les startups hésitent à travailler avec une agence de développement de logiciels sur mesure - et comment nous répondons à toutes leurs préoccupations

    <p>Les startups hésitent souvent à travailler avec des agences de logiciels pour des raisons de coût, de contrôle et de flexibilité. Découvrez comment les solutions logicielles sur mesure de Bulcode relèvent chaque défi, garantissant ainsi croissance et agilité.</p>

    Écrit par Svetoslava Angelova
    Nov 05, 20247 min read
    Construire une équipe Agile performante : Notre approche éprouvée

    Blog

    Construire une équipe Agile performante : Notre approche éprouvée

    Découvrez comment nous construisons des équipes Agile performantes en définissant des rôles clairs, en favorisant la collaboration et en utilisant des outils flexibles.

    Écrit par Svetoslava Angelova
    Aug 27, 202411 min read
    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Blog

    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Drupal 11 est sorti ! Dans cet article, découvrez ses fonctionnalités et améliorations passionnantes. Mettez-le à jour dès maintenant pour redéfinir votre stratégie numérique avec l'aide des experts de Bulcode.

    Écrit par Svetoslava Angelova
    Aug 05, 20249 min read
    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Blog

    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Découvrez comment les composants à répertoire unique (SDC) de Drupal Core rationalisent le processus de développement en encapsulant les fichiers liés aux composants dans un répertoire unique. Découvrez les avantages des SDC et suivez un guide étape par étape pour les mettre en œuvre dans vos projets Drupal.

    Écrit par Nikolay Tsekov
    Aug 07, 20244 min read
    Événements SCRUM

    Blog

    Événements SCRUM

    Scrum définit plusieurs événements (parfois appelés cérémonies) qui se déroulent au cours de chaque sprint : la planification du sprint, la mêlée quotidienne, la revue du sprint et la rétrospective du sprint.

    Écrit par Svetoslava Angelova
    Aug 07, 20233 min read
    Artéfacts Scrum

    Blog

    Artéfacts Scrum

    Dans le domaine du développement logiciel, le terme "artefact" fait référence aux informations que les parties prenantes et l'équipe scrum utilisent pour décrire un produit en cours de développement.

    Écrit par Svetoslava Angelova
    Aug 07, 20232 min read
    Drupal sans tête avec Next.js - un exemple simple à suivre

    Blog

    Drupal sans tête avec Next.js - un exemple simple à suivre

    La tendance récente, dans le développement web en général, et par conséquent dans le développement Drupal, est d'utiliser la technologie headless. La tendance récente, dans le développement web en général, et par conséquent dans le développement Drupal, est d'utiliser la technologie headless.

    Écrit par Mihail Shahov
    Aug 07, 20238 min read
    Embaucher des développeurs de logiciels spécialisés (équipes)

    Blog

    Embaucher des développeurs de logiciels spécialisés (équipes)

    Vous en avez assez d'augmenter les dépenses de votre équipe de développement interne ? Pourquoi ne pas faire appel à une équipe dédiée pour 40 à 60 % du coût ?

    Écrit par Mihail Shahov
    Aug 07, 20233 min read
    L'importance du bon partenaire de développement dans le cycle de vie de votre logiciel

    Blog

    L'importance du bon partenaire de développement dans le cycle de vie de votre logiciel

    La réussite à portée de main : L'art de choisir le partenaire idéal pour le développement de logiciels. Découvrez le rôle essentiel des partenaires dans le développement de logiciels, les secrets du retour sur investissement et restez à la pointe des tendances du secteur dans cet article incontournable.

    Écrit par Mihail Shahov
    Sep 26, 202310 min read
    Tutoriel sur le module Config split pour Drupal

    Blog

    Tutoriel sur le module Config split pour Drupal

    En tant que développeurs, nous sommes souvent amenés à travailler dans des environnements différents. Cela peut parfois conduire à des problèmes (inattendus). Dans Drupal 8, nous utilisons le système de configuration qui fonctionne plutôt bien, mais il y a des cas où les paramètres pour l'environnement local et tout autre environnement devraient être différents.

    Écrit par Ivaylo Tsandev
    Aug 08, 20238 min read
    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Blog

    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Découvrez la synergie dynamique entre Drupal 10 et Next.js, alors que cette puissante combinaison redessine le paysage du développement web. Next.js, un framework open-source basé sur React, est intégré de manière transparente en tant que frontend headless de Drupal 10, offrant une pléthore d'avantages. De l'amélioration des performances grâce à des fonctionnalités telles que le fractionnement automatique du code et le rendu côté serveur à la conception flexible et aux capacités de référencement, cette collaboration permet aux développeurs de créer des applications web très performantes, évolutives et visuellement attrayantes. La gestion efficace du contenu de Drupal 10 associée à l'adaptabilité de Next.js aux tendances garantit une approche de développement de pointe, positionnant ce tandem à l'avant-garde des pratiques modernes de développement web. Embrassez l'avenir avec la combinaison Drupal 10 et Next.js, redéfinissant la façon dont nous abordons et créons des expériences en ligne dynamiques.

    Écrit par Todor Kolev
    Feb 09, 20246 min read
    Tutoriel du module Config ignore pour Drupal

    Blog

    Tutoriel du module Config ignore pour Drupal

    Parfois, nous ne voulons pas que nos configurations soient partagées dans la base de code. Que faire dans ce cas ?

    Écrit par Ivaylo Tsandev
    Aug 08, 20237 min read

    PRENDRE CONTACT

    Vous avez un projet à lancer ?