Deel dit artikel:

Blog
Aug 22, 20234 min read

Laravel Mix - een eenvoudige en krachtige wrapper rond Webpack

Stefani Tashkova

Junior Ontwikkelaar

Laravel Mix - een eenvoudige en krachtige wrapper rond Webpack

Laravel Mix

We zullen het hebben over Laravel Mix. Om het beter te begrijpen, zullen we beginnen met uit te leggen wat Webpack is.

Webpack is een ongelooflijk krachtige modulebundelaar die je JavaScript en assets klaarmaakt voor de browser en daarom is Mix een dunne laag bovenop webpack die dient voor het dynamisch opbouwen van je Webpack-configuratie. Hoewel Laravel Mix oorspronkelijk is gebouwd voor Laravel-projecten, kan het natuurlijk worden gebruikt voor elk type applicatie.

Overzicht

De nieuwste versie van Laravel Mix is versie 6 en vereist afhankelijkheden die compatibel zijn met Webpack 5 of PostCSS 8. Het is een gratis tool die automatisch je assets optimaliseert en miniseert bij het bouwen voor productie met het npx mix --production commando, waar we het later over zullen hebben.

Laravel Mix wordt ook geleverd met basisondersteuning voor typescript en View, en om te helpen met caching op de lange termijn, biedt mix de methode mix.version(). Als versiebeheer is ingeschakeld, wordt elke keer dat je code wordt gecompileerd een unieke query string-ID toegevoegd aan je assets en bij het compileren zien we de gehashte namen in het bestand mix-manifest.json. Een ander groot voordeel van de mix API is dat we leveranciersbibliotheken kunnen isoleren of extraheren in hun eigen bestanden, wat natuurlijk zal resulteren in een aanzienlijk kleiner app.js bestand. Met hot module replacement kunnen we modules uitwisselen, toevoegen of verwijderen terwijl een applicatie draait zonder deze volledig te herladen. Het enige wat we moeten doen is vanaf de commandoregel npx mix watch --hot uitvoeren om een node server op te starten en onze bundel te controleren op wijzigingen.

Mix biedt het mix.css() commando voor basis CSS compilatie en het iPostCSS plugin ecosysteem als onderdeel van onze compilatie, en we hebben ook opties voor Sass en Less compilatie. Standaard leidt Mix al onze CSS door de populaire Autoprefixer PostCSS plugin. Als zodanig zijn we vrij om de nieuwste CSS 3-syntaxis te gebruiken, met dien verstande dat alle benodigde browser-prefixen automatisch worden toegepast. Een belangrijk concept om te begrijpen is dat Mix en Webpack alle URL's met relatieve paden binnen onze stylesheets zullen herschrijven, maar de absolute paden zullen altijd worden uitgesloten van URL-herschrijving.

Installatiestappen

Hier kunnen we zien hoe je Laravel Mix installeert en configureert.

Eerst moeten we Mix installeren via npm of yarn.

npm install laravel-mix --save-dev

yarn add laravel-mix

De tweede stap is het maken van een mix-configuratiebestand met de naam webpack.mix.js

webpack.mix.js aanraken

Dan definiëren we daar onze compilatie. In dit voorbeeld stellen we ons openbare pad in en gebruiken we de mix sass compilatie.

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

Tot slot hoeven we alleen nog maar een npx mix commando uit te voeren om de juiste Webpack build te activeren.

Nuttige CLI-commando's

  • Compileren in een lokale omgeving

    npm mix
  • Let op Activa voor veranderingen

    npx mix horloge
  • Polling

    npx mix-watch-opties-poll
  • Hete module vervangen

    npx mix horloge --hot
  • Compileren voor productie

    npx mix --productie
  • Het pad van de mixconfiguratie aanpassen

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

Nuttige functies

  • Mix biedt een aantal andere nuttige functies, bijvoorbeeld als we leverancierbibliotheken hebben die gescheiden moeten blijven van onze kernwebpack-bundel, kunnen we mix.combine() gebruiken om meerdere bestanden samen te voegen of op te tellen tot een enkel bestand met de naam bijvoorbeeld merged.js.
  • Een andere interessante functie is browsersync waarmee onze bestanden automatisch worden gecontroleerd op wijzigingen en eventuele wijzigingen in de browser worden geïnjecteerd, allemaal zonder dat er een handmatige verversing nodig is.
  • In bepaalde gevallen kan het gemakkelijker blijken om een niveau lager te gaan en de onderstreepte webpackconfiguratie rechtstreeks op te heffen en mix biedt het mix.webpackConfig() commando om ons toe te laten dit te doen.
  • Laten we nu eens kijken naar de event hooks. In sommige scenario's moeten we een stukje logica uitvoeren voordat de compilatie begint. Als we bijvoorbeeld een map moeten kopiëren of een bestand moeten verplaatsen, laat de functie mix.before() dit toe en Mix zal niet beginnen met compileren totdat alle haken volledig zijn opgelost. Aan de andere kant kunnen we een stuk logica uitvoeren nadat Webpack zijn compilatie heeft voltooid met de mix.after() methode. Bijvoorbeeld als u een lijst van alle gecompileerde assets wilt loggen.

Voor meer informatie kun je terecht in de officiële documentatie van Laravel Mix.

ABONNEER U OP ONZE NIEUWSBRIEF

Deel dit artikel:

ABONNEER U OP ONZE NIEUWSBRIEF

Verwante Blog Artikelen

    Waarom startups aarzelen om te werken met een softwareontwikkelingsbureau op maat - en hoe we elke zorg aanpakken

    Blog

    Waarom startups aarzelen om te werken met een softwareontwikkelingsbureau op maat - en hoe we elke zorg aanpakken

    <p>Startups aarzelen vaak om met softwarebureaus te werken omdat ze zich zorgen maken over kosten, controle en flexibiliteit. Ontdek hoe de softwareoplossingen op maat van Bulcode elke uitdaging aangaan en groei en flexibiliteit garanderen.</p>

    Geschreven door Svetoslava Angelova
    Nov 05, 20246 min read
    Bouwen aan een goed presterend Agile team: Onze bewezen aanpak

    Blog

    Bouwen aan een goed presterend Agile team: Onze bewezen aanpak

    Ontdek hoe we goed presterende Agile-teams bouwen door duidelijke rollen te definiëren, samenwerking te stimuleren en flexibele tools te gebruiken.

    Geschreven door Svetoslava Angelova
    Aug 27, 20249 min read
    Drupal 11: Wat kunt u verwachten? Uitgebreide gids voor nieuwe functies en verbeteringen

    Blog

    Drupal 11: Wat kunt u verwachten? Uitgebreide gids voor nieuwe functies en verbeteringen

    Drupal 11 is uit! Ontdek in dit artikel de spannende functies en verbeteringen. Upgrade nu en herdefinieer je digitale strategie met de deskundige ondersteuning van Bulcode.

    Geschreven door Svetoslava Angelova
    Aug 05, 20247 min read
    Single Directory-onderdelen in Drupal core: Een uitgebreid overzicht

    Blog

    Single Directory-onderdelen in Drupal core: Een uitgebreid overzicht

    Ontdek hoe Single Directory Components (SDC) in Drupal Core het ontwikkelproces stroomlijnen door componentgerelateerde bestanden in een enkele map in te kapselen. Leer meer over de voordelen van SDC's en volg een stap-voor-stap handleiding om ze te implementeren in uw Drupal-projecten.

    Geschreven door Nikolay Tsekov
    Aug 07, 20244 min read
    Welk IT-engagementmodel is geschikt voor jou?

    Blog

    Welk IT-engagementmodel is geschikt voor jou?

    Vaste prijs, tijd en materialen of speciale teams? Overweeg zorgvuldig alle voor- en nadelen van het opdrachtmodel voor jouw project.

    Geschreven door Svetoslava Angelova
    Aug 22, 202310 min read
    De websites van de luchthavens van Varna en Burgas gebruiken React-componenten in Drupal

    Blog

    De websites van de luchthavens van Varna en Burgas gebruiken React-componenten in Drupal

    Drupal is een modulair systeem waarvan de functies kunnen worden aangepast aan veel verschillende vereisten, wat vooral belangrijk is voor projecten in de overheidsadministratie.

    Geschreven door Mihail Shahov
    Aug 22, 20234 min read
    Wat is Scrum?

    Blog

    Wat is Scrum?

    Scrum is een onderdeel van de Agile methodologie. Het is het populairste raamwerk voor agile ontwikkeling en het is een eenvoudig procesraamwerk.

    Geschreven door Svetoslava Angelova
    Aug 22, 20234 min read
    Rollen in Scrum

    Blog

    Rollen in Scrum

    Scrum rollen en hoe je ze in je organisatie kunt inpassen.

    Geschreven door Svetoslava Angelova
    Aug 22, 20234 min read
    Scrum evenementen

    Blog

    Scrum evenementen

    Scrum definieert verschillende gebeurtenissen (soms ceremonies genoemd) die binnen elke sprint plaatsvinden: sprintplanning, dagelijkse scrum, sprint review en sprint retrospective.

    Geschreven door Svetoslava Angelova
    Aug 22, 20233 min read
    Scrum artefacten

    Blog

    Scrum artefacten

    Bij softwareontwikkeling verwijst de term "artefact" naar informatie die belanghebbenden en het scrumteam gebruiken om een product te beschrijven dat wordt ontwikkeld.

    Geschreven door Svetoslava Angelova
    Aug 22, 20232 min read
    Drupal zonder kop met Next.js - eenvoudig voorbeeld

    Blog

    Drupal zonder kop met Next.js - eenvoudig voorbeeld

    De laatste tijd is de trend in webontwikkeling in het algemeen, en dus ook in Drupal-ontwikkeling, om de technologie headless te gebruiken. De laatste tijd is de trend in webontwikkeling in het algemeen, en dus ook in Drupal-ontwikkeling, om de technologie headless te gebruiken.

    Geschreven door Mihail Shahov
    Aug 22, 20237 min read
    Speciale softwareontwikkelaars (teams) inhuren

    Blog

    Speciale softwareontwikkelaars (teams) inhuren

    Bent u het zat om de kosten te verhogen met uw interne ontwikkelteam? Waarom krijgt u geen toegewijd team tegen 40% tot 60% van de kosten?

    Geschreven door Mihail Shahov
    Aug 22, 20233 min read

    NEEM CONTACT OP

    Heb je een project dat je wilt lanceren?