Teilen Sie diesen Artikel:

Blog
Aug 07, 20234 min read

Laravel Mix - ein einfacher und leistungsstarker Wrapper um Webpack

Stefani Tashkova

Junior-Entwickler

Laravel Mix - ein einfacher und leistungsstarker Wrapper um Webpack

Laravel-Mix

Wir werden über Laravel Mix sprechen. Um es besser zu verstehen, werden wir zunächst erklären, was Webpack ist.

Webpack ist ein unglaublich leistungsfähiger Modul-Bundler, der Ihr JavaScript und Ihre Assets für den Browser vorbereitet. Daher ist Mix eine dünne Schicht über Webpack, die dazu dient, Ihre Webpack-Konfiguration dynamisch zu erstellen. Obwohl Laravel Mix ursprünglich für Laravel-Projekte entwickelt wurde, kann es natürlich für jede Art von Anwendung verwendet werden.

Übersicht

Die neueste Version von Laravel Mix ist Version 6 und erfordert Abhängigkeiten, die mit Webpack 5 oder PostCSS 8 kompatibel sind. Es ist ein kostenloses Tool, das Ihre Assets automatisch optimiert und minimiert, wenn Sie sie mit dem Befehl npx mix --production für die Produktion erstellen, über den wir später sprechen werden.

Laravel Mix wird auch mit grundlegender Typescript- und View-Unterstützung ausgeliefert. Zur Unterstützung der langfristigen Zwischenspeicherung bietet Mix die Methode mix.version(). Bei aktivierter Versionierung wird jedes Mal, wenn Ihr Code kompiliert wird, eine eindeutige Query-String-ID an Ihre Assets angehängt, und nach der Kompilierung werden die gehashten Namen in der Datei mix-manifest.json angezeigt. Ein weiterer großer Vorteil der mix-API besteht darin, dass wir Herstellerbibliotheken isolieren oder in eigene Dateien extrahieren können, was natürlich zu einer deutlich kleineren app.js-Datei führt. Mit Hot Module Replacement können wir Module austauschen, hinzufügen oder entfernen, während eine Anwendung läuft, ohne sie komplett neu laden zu müssen. Alles, was wir tun müssen, ist, von der Kommandozeile aus npx mix watch --hot auszuführen, um einen Node-Server zu starten und unser Bundle auf Änderungen zu überwachen.

Mix bietet den Befehl mix.css() für die grundlegende CSS-Kompilierung und das iPostCSS-Plugin-Ökosystem als Teil unserer Kompilierung, und wir haben auch Optionen für die Kompilierung mit Sass und Less. Standardmäßig wird Mix alle unsere CSS durch das beliebte Autoprefixer PostCSS-Plugin leiten. Als solche sind wir frei, die neueste CSS 3-Syntax mit dem Verständnis, dass alle notwendigen Browser-Präfixe werden automatisch angewendet werden, zu verwenden. Ein wichtiges Konzept zu verstehen ist, dass Mix und Webpack wird alle URLs mit relativen Pfaden innerhalb unserer Stylesheets umschreiben, aber die absolute Pfade werden immer von URL Rewriting ausgeschlossen werden.

Installationsschritte

Hier sehen wir, wie man Laravel Mix installiert und einrichtet.

Zuerst sollten wir Mix entweder über npm oder yarn installieren.

npm install laravel-mix --save-dev

yarn add laravel-mix

Der zweite Schritt besteht darin, eine Mix-Konfigurationsdatei namens webpack.mix.js zu erstellen

webpack.mix.js berühren

Dann definieren wir dort unsere Kompilierung. In diesem Beispiel legen wir unseren öffentlichen Pfad fest und verwenden die mix sass-Kompilierung.

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

Schließlich müssen wir nur noch einen npx mix-Befehl ausführen, um den entsprechenden Webpack-Build auszulösen.

Nützliche CLI-Befehle

  • Kompilieren in einer lokalen Umgebung

    npm-Mix
  • Assets auf Veränderungen überwachen

    npx mix uhr
  • Abfrage

    npx mix watch--watch-options-poll
  • Austausch des Heißmoduls

    npx mix watch --hot
  • Kompilieren für die Produktion

    npx mix --production
  • Anpassen des Mix-Konfigurationspfads

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

Nützliche Merkmale

  • Mix bietet einige andere nützliche Funktionen, zum Beispiel, wenn wir Anbieterbibliotheken haben, die von unserem Kern-Webpack-Bündel getrennt bleiben müssen, können wir mix.combine() verwenden, um mehrere Dateien in eine einzige Datei mit dem Namen merged.js zusammenzuführen oder zu verketten.
  • Eine weitere interessante Funktion ist browsersync, die unsere Dateien automatisch auf Änderungen überwacht und alle Änderungen in den Browser überträgt, ohne dass eine manuelle Aktualisierung erforderlich ist.
  • In bestimmten Fällen kann es sich als einfacher erweisen, eine Ebene tiefer zu gehen und die unterstrichene Webpack-Konfiguration direkt zu überschreiben, und mix bietet den mix.webpackConfig()-Befehl, um dies zu ermöglichen.
  • Schauen wir uns nun die Ereignis-Hooks an. In einigen Szenarien kann es notwendig sein, ein Stück Logik auszuführen, bevor die Kompilierung beginnt. Wenn wir zum Beispiel ein Verzeichnis kopieren oder eine Datei verschieben müssen, ermöglicht die mix.before() Funktion dies, und Mix beginnt erst mit der Kompilierung, wenn alle Hooks vollständig aufgelöst wurden. Auf der anderen Seite können wir ein Stück Logik ausführen, nachdem Webpack seine Kompilierung mit der mix.after() Methode abgeschlossen hat. Zum Beispiel, wenn man eine Liste aller kompilierten Assets protokollieren möchte.

Für weitere Informationen können Sie die offizielle Dokumentation von Laravel Mix besuchen.

ABONNIEREN SIE UNSEREN NEWSLETTER

Teilen Sie diesen Artikel:

ABONNIEREN SIE UNSEREN NEWSLETTER

Verwandte Blog-Artikel

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    Blog

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    <p>Start-ups zögern oft, mit Softwareagenturen zusammenzuarbeiten, weil sie Bedenken hinsichtlich Kosten, Kontrolle und Flexibilität haben. Entdecken Sie, wie die maßgeschneiderten Softwarelösungen von Bulcode jede Herausforderung meistern und für Wachstum und Flexibilität sorgen.</p>

    Geschrieben von Svetoslava Angelova
    Nov 05, 20246 min read
    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Blog

    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Erfahren Sie, wie wir leistungsstarke agile Teams aufbauen, indem wir klare Rollen definieren, die Zusammenarbeit fördern und flexible Tools einsetzen.

    Geschrieben von Svetoslava Angelova
    Aug 27, 20249 min read
    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Blog

    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Drupal 11 ist da! Entdecken Sie in diesem Artikel die spannenden Funktionen und Verbesserungen. Führen Sie jetzt ein Upgrade durch, um Ihre digitale Strategie mit dem Experten-Support von Bulcode neu zu definieren.

    Geschrieben von Svetoslava Angelova
    Aug 05, 20247 min read
    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Blog

    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Erfahren Sie, wie Single Directory Components (SDC) in Drupal Core den Entwicklungsprozess rationalisieren, indem komponentenbezogene Dateien in einem einzigen Verzeichnis gekapselt werden. Erfahren Sie mehr über die Vorteile von SDCs und folgen Sie einer Schritt-für-Schritt-Anleitung, um sie in Ihren Drupal-Projekten zu implementieren.

    Geschrieben von Nikolay Tsekov
    Aug 07, 20244 min read
    SCRUM-EVENTS

    Blog

    SCRUM-EVENTS

    Scrum definiert mehrere Ereignisse (manchmal auch Zeremonien genannt), die in jedem Sprint stattfinden: Sprint Planning, Daily Scrum, Sprint Review und Sprint Retrospective.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20233 min read
    Scrum-Artefakte

    Blog

    Scrum-Artefakte

    In der Softwareentwicklung bezieht sich der Begriff "Artefakt" auf Informationen, die Stakeholder und das Scrum-Team verwenden, um ein in der Entwicklung befindliches Produkt zu beschreiben.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20232 min read
    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Blog

    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in der Drupal-Entwicklung ist die Verwendung der Technologie headless. Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in Drupal-Entwicklung ist die Technologie zu verwenden, headless.

    Geschrieben von Mihail Shahov
    Aug 07, 20237 min read
    Engagierte Softwareentwickler (Teams) anstellen

    Blog

    Engagierte Softwareentwickler (Teams) anstellen

    Sind Sie es leid, die Kosten für Ihr internes Entwicklungsteam zu erhöhen? Warum holen Sie sich nicht ein engagiertes Team zu 40 % bis 60 % der Kosten?

    Geschrieben von Mihail Shahov
    Aug 07, 20233 min read
    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Blog

    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Den Erfolg freischalten: Die Kunst der Auswahl des perfekten Softwareentwicklungspartners. Erforschen Sie die zentrale Rolle von Partnern in der Softwareentwicklung, decken Sie ROI-Geheimnisse auf und bleiben Sie den Branchentrends einen Schritt voraus in diesem lesenswerten Artikel.

    Geschrieben von Mihail Shahov
    Sep 26, 20239 min read
    Tutorial zum Modul Config Split für Drupal

    Blog

    Tutorial zum Modul Config Split für Drupal

    Sehr oft müssen wir als Entwickler mit verschiedenen Umgebungen arbeiten. Das kann manchmal zu (un)erwarteten Problemen führen. In Drupal 8 verwenden wir das Konfigurationssystem, das ziemlich gut funktioniert, aber es gibt Fälle, in denen die Einstellungen für die lokale und eine andere Umgebung unterschiedlich sein sollten.

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read
    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Blog

    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Entdecken Sie die dynamische Synergie zwischen Drupal 10 und Next.js, da diese leistungsstarke Kombination die Landschaft der Webentwicklung neu gestaltet. Next.js, ein Open-Source-Framework auf React-Basis, ist nahtlos als Headless-Frontend in Drupal 10 integriert und bietet eine Fülle von Vorteilen. Von verbesserter Leistung mit Funktionen wie automatischer Codeaufteilung und serverseitigem Rendering bis hin zu flexiblem Design und SEO-freundlichen Funktionen ermöglicht diese Zusammenarbeit Entwicklern die Erstellung leistungsstarker, skalierbarer und visuell ansprechender Webanwendungen. Die effiziente Inhaltsverwaltung von Drupal 10 in Verbindung mit der Anpassungsfähigkeit von Next.js an Trends gewährleistet einen innovativen Entwicklungsansatz und positioniert dieses Tandem an der Spitze der modernen Webentwicklungspraktiken. Umarmen Sie die Zukunft mit der Kombination aus Drupal 10 und Next.js und definieren Sie neu, wie wir dynamische Online-Erlebnisse angehen und gestalten.

    Geschrieben von Todor Kolev
    Feb 09, 20245 min read
    Tutorial zum Modul Config Ignore für Drupal

    Blog

    Tutorial zum Modul Config Ignore für Drupal

    Manchmal wollen wir nicht, dass unsere Konfigurationen in der Codebasis freigegeben werden. Was können wir also in solchen Fällen tun?

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read

    KONTAKT AUFNEHMEN

    Sie haben ein Projekt, das Sie gerne starten würden?