Heim > Artikel > Web-Frontend > ViteConf-Innovationen, Ankündigungen und der Weg in die Zukunft
Hallo ^_~ ;
Ich bin Lamine und freue mich, meinen ersten technischen Artikel über die Highlights der ViteConf 2024 zu veröffentlichen. Als Technikbegeisterter, der sich mit technischem Schreiben beschäftigt, freue ich mich auf Ihr Feedback und Ihre Vorschläge, um meine zukünftigen Inhalte zu verbessern.
Bevor wir uns mit den Konferenzdetails befassen, wollen wir untersuchen, was Vite und ViteConf sind?
Vite ist ein Front-End-Build-Tool der nächsten Generation, das von Evan You (dem Erfinder von Vue.js) entwickelt wurde. Es verbessert das Webentwicklungserlebnis erheblich, indem es einen blitzschnellen Hot Module Replacement (HMR) über einen Entwicklungsserver mit nativen ES-Modulen bietet. Mit seiner einfachen Konfiguration bündelt Vite Code mithilfe von Rollup und nutzt SWC (Speedy Web Compiler) für eine effiziente Codetransformation.
ViteConf ist eine jährliche kostenlose Online-Veranstaltung, die die Vite-Community in einem ansprechenden und interaktiven Format zusammenbringt. Experten und Enthusiasten treffen sich, um Wissen auszutauschen und neue Funktionen vorzustellen. In diesem Jahr (3.-4. Oktober 2024) fand die Veranstaltung zum dritten Mal statt und umfasste 43 Workshops in einem 12-Stunden-Marathon.
Zwölf Stunden Inhalt mit vielen technischen Details zusammenzufassen, ist eine Herausforderung. Aber ich habe versucht, es maximal zusammenzufassen, ohne wichtige Informationen auszulassen. Um unseren Artikel zu vereinfachen, habe ich die Originaltitel der meisten ViteConf-Vorträge beibehalten und sie in 8 Hauptabschnitte unterteilt:
Unsere Veranstaltung brachte einige große Ankündigungen mit sich, die den Weg für die Zukunft von Vite ebnen. Visionäre Redner stellten bahnbrechende Tools und Plattformen vor, die das Potenzial haben, die Webentwicklung neu zu gestalten. Tauchen wir ein in die Highlights!
Evan You hat Void Zero angekündigt, ein neues Unternehmen, das sich auf die Entwicklung der nächsten Generation von JavaScript-Tools konzentriert. Das Unternehmen hat unter der Leitung von Accel und Amplify Partners unter Beteiligung erfahrener Gründer im Bereich Entwicklertools eine Startfinanzierung in Höhe von 4,6 Millionen US-Dollar aufgebracht. Void Zero arbeitet an der Verwirklichung von Evans Vision, eine einheitliche, leistungsstarke und zusammensetzbare Toolchain zu schaffen, die für die JavaScript-Entwicklung laufzeitunabhängig ist. Evan besprach auch die aktuellen Fortschritte bei Void Zero und teilte einige beeindruckende Testbenchmarks mit, die Sie mit Sicherheit in Erstaunen versetzen werden.
Eric Simons, Mitbegründer von StackBlitz, kündigte Bolt.new an, ein revolutionäres Tool, das die Webentwicklungslandschaft neu gestalten wird und die etablierten Funktionen der WebContainer-Technologie von StackBlitz nutzt. Bolt.new bietet Entwicklern eine vollständige, browserinterne Umgebung, die die sofortige Projekterstellung, das Debuggen, die Fehlerbehebung und die Bereitstellung ermöglicht, alles basierend auf dem hochmodernen großen Sprachmodell Claude und V0.
Eric erklärte, wie Bolt.new so konzipiert ist, dass die Einrichtungszeit verkürzt wird. Durch die Eingabe einer einfachen Eingabeaufforderung können Entwickler vollständig konfigurierte Anwendungen direkt aus dem Browser generieren, was wirklich bahnbrechend ist. Mit integrierter Paketverwaltung und Abhängigkeitsbehandlung war die in seinem Vortrag demonstrierte Leistung beispiellos. Der beste Weg, sein Potenzial zu erkennen, besteht darin, Bolt.new selbst auszuprobieren.
Eric blieb bei dieser Ankündigung nicht stehen, sondern enthüllte auch ein weiteres wichtiges Update: Bolt.new Core ist jetzt Open Source und auf Github verfügbar.
Nach Evans Einführung zu OXC und Rolldown und ihrer bevorstehenden Integration in die Vite-Umgebung stellte Boshen Chen, der Schöpfer des Oxc-Projekts, OXC vor, eine ehrgeizige, leistungsstarke, vollständig integrierte JavaScript-Toolchain, die in Rust geschrieben wurde und wesentlich dazu entwickelt wurde Verbessern Sie die Leistung und die Entwicklererfahrung. Es besteht aus:
Zu den künftig geplanten Komponenten gehören:
Boshen stellte außerdem Rolldown vor, den zukünftigen Bundler für Vite, der OXC als Kern-Engine verwendet. Rolldown bietet hohe Leistung und unterstützt eine Reihe von Funktionen, darunter Tree-Shaking, Code-Splitting und Plugin-Kompatibilität.
Der nächste Schritt beinhaltet eine tiefere Vite-Integration mit OXC und Rolldown, die zu erheblichen Leistungsverbesserungen, einem konsistenteren Entwicklererlebnis und der Fähigkeit führen wird, noch größere und komplexere Webanwendungen zu verarbeiten.
Matias (Patak) stellte die Environment API vor, eine bedeutende Weiterentwicklung, die die Flexibilität und Leistung von Vite verbessern soll. Mit dieser API können Entwickler mehrere Umgebungen (Beispiel: Client, Server, Edge) innerhalb eines einzigen Vite-Projekts definieren und so Entwicklungs- und Bereitstellungsprozesse optimieren. Er bemerkte den Zustrom von Meta-Frameworks wie Nuxt, Remix und TanStack seit dem ersten Jahr der ViteConf.
Zu den wichtigsten Erkenntnissen aus dem Vortrag gehören:
Tomek stellte TutorialKit vor, ein innovatives Open-Source-Tool, das die Erstellung interaktiver Tutorials im JavaScript-Ökosystem neu definiert. TutorialKit begegnet den Einschränkungen der aktuellen Dokumentation und bietet eine kuratierte, praktische Lernerfahrung, die Benutzerhandbücher mit strukturierten Demos und Übungen integriert.
TutorialKit basiert auf WebContainers und basiert auf Erkenntnissen aus Frameworks wie Svelte, Angular und Nuxt. Mit einem einzigen Befehl, npm create Tutorial, können Entwickler in weniger als einer Minute schnell ein vollständiges Tutorial-Projekt erstellen – komplett mit Lektionsbeschreibungen, Codeausschnitten und Live-Vorschauen.
TutorialKit ist hochgradig anpassbar und bietet dunkle und helle Themen sowie ein interaktives Terminal, sodass sich Lernende vollständig mit dem Material beschäftigen können. Dieses Tool ermöglicht es Entwicklern, Pädagogen und Communities gleichermaßen, ansprechendere Bildungsressourcen direkt im Browser zu erstellen.
Mohammad stellte pkg.pr.new vor, ein Tool für NPM-Bibliotheksbetreuer und -Benutzer, mit dem sie ohne komplexe Einrichtung eine Vorschau unveröffentlichter Zweige, Korrekturen oder Funktionen anzeigen können. Mit einem einfachen Befehl wie:
npm i https://pkg.pr.new/${owner}/${repo}/${package}@{commit}
Entwickler können bestimmte Versionen sofort testen und umständliche Methoden wie kontinuierliche Releases umgehen.
Zu den nächsten Schritten gehören Integrationen mit ESM.sh für CDN-Unterstützung und eine benutzerdefinierte Benutzeroberfläche, wodurch die Funktionalität von pkg.pr.new auf Umgebungen wie Deno und Vue Playground erweitert wird.
In diesem Abschnitt werden wir neue Integrationen erkunden, die Vite noch anpassungsfähiger machen. Von der Angular-Unterstützung bis hin zu verbesserten Tests und CI-Workflows zeigen diese Updates, wie Vite seine Reichweite erweitert und das Entwicklererlebnis vereinfacht.
Yann Braga, ein Storybook-Betreuer bei Chromatic, stellte bedeutende neue Integrationen mit Vite und Vitest vor, die die Entwicklung und das Testen von UI-Komponenten revolutionieren. Mit diesen Updates wird ein Vitest-Plugin eingeführt, das Storybook-Storys in Funktionstests umwandelt und so die Codeabdeckung ohne zusätzliche Testfälle mühelos erhöht. Die visuelle Debugging-Funktion des Plugins ermöglicht es Entwicklern, fehlgeschlagene Tests in Echtzeit von ihrer CI-Umgebung aus zu überprüfen und so eine nahtlose Teamzusammenarbeit zu fördern.
In Version 9 plant Storybook, visuelle, Barrierefreiheits- und Funktionstests in einer zusammenhängenden Benutzeroberfläche zu vereinen und auf reine ESM-Builds umzusteigen, um die Installationsgröße zu reduzieren und die Leistung zu verbessern. Diese Fortschritte unterstreichen das Engagement von Storybook für effiziente, optimierte Front-End-Workflows und umfassende Komponententests.
Katerina Skroumpelou, leitende Ingenieurin bei Nx, betonte die Effizienz, die Nx für Vite-Projekte bringt. Sie begann mit der Diskussion, wie Nx CI-Workflows optimiert und komplexe Aufgaben automatisiert, wodurch Build-Prozesse schneller und effizienter werden.
Als nächstes demonstrierte sie die Verwendung von Nx mit einem React Vite-Projekt. Die Demo zeigte, wie Nx die Leistung durch Funktionen wie Caching und Nx Cloud-Integration steigert. Nx Cloud ermöglicht Skalierung und Aufgabenwiederholung und bietet parallele Ausführung zur Steigerung der Geschwindigkeit. Der Befehl „nx Affected“ wurde ebenfalls vorgestellt, der Aufgaben intelligent nur für geänderte Teile der Codebasis ausführt und so CI weiter optimiert.
Katerina betonte, dass Nx-Plugins, wie die für ESLint und Vite, Migrationen vereinfachen und Code nahtlos pflegen, ohne bestehende Strukturen zu stören. Abschließend zeigte sie, wie man GitHub-Aktionen für CI einrichtet und demonstrierte damit die Fähigkeit von Nx, Aufgaben effizient auf Agenten zu verteilen.
Irina Nazarova, die das Beratungsunternehmen Evil Martians leitet, berichtete, wie Vite Ruby die Entwicklererfahrung in Rails-Anwendungen verändert hat und eine bessere Alternative zum „No Build“-Ansatz von Rails bietet. Vite Ruby wurde erfolgreich bei Unternehmen wie Power Home Remodeling Group und ClickFunnels implementiert und ermöglichte komplexere Frontend-Setups unter Beibehaltung der entwicklerfreundlichen Philosophie von Rails.
Zhao Jinjiang, Softwareentwickler bei Bit und Mitglied des Vue.js Conf-Teams, diskutierte den Übergang von Bit von Webpack/Jest zu Vite/Vitest. Dieser Wechsel erleichterte die komponentengesteuerte Entwicklung, indem er benutzerdefinierte Entwicklungsumgebungen mit integrierten Tests, optimierten Build- und Test-Workflows und erhöhter Flexibilität durch Node-APIs ermöglichte.
In diesem Abschnitt schauen wir uns an, wie Vite wichtige Frameworks wie SolidJS, Svelte und Remix unterstützt. Diese Entwicklungen zeigen, wie Vite neue Funktionen und Leistungsverbesserungen vorantreibt, die auf die Anforderungen jedes Frameworks zugeschnitten sind.
Ryan Carniato, Erfinder von SolidJS, erzählte, wie sich SolidStart (erreichte im Mai Version 1.0) weiterentwickelte, um die Client- und Serverentwicklung zu vereinheitlichen. Aufbauend auf Vite, Vinxi und Nitro führte SolidStart Serverfunktionen ein und wurde zum ersten JavaScript-Framework mit einer vereinfachten, routerlosen Architektur, wodurch eine beeindruckend geringe Bundle-Größe von 4,7 KB erreicht wurde.
Mit finanzieller Unterstützung des Chrome-Teams entwickelten Ryan und Alexis Seroval, ein leistungsstarkes Serialisierungstool, das asynchrone Daten und Streaming verarbeiten kann. Dies führte zu einem bedeutenden Durchbruch: Single-Flight-Mutationen, die Aktionen und Datenabruf effizient in einer nahtlosen Anfrage kombinieren. Sie demonstrierten dieses Konzept mit einer interaktiven Trello-Board-Demo und demonstrierten die Leistungssteigerungen.
Ryan betonte auch die Bedeutung des Vite-Ökosystems für die Ermöglichung eines schnellen Prototypings und betonte, wie es die Entwicklung von Solid 2.0 beeinflusst hat.
Lukas Taegert-Atkinson stellte aktuelle und kommende Verbesserungen für Rollup vor:
Pedro Cattori und Mark Dalgleish stellten die Verbesserungen vor, die sich aus der Migration von Remix zu Vite ergaben.
Pedro konzentrierte sich auf die Servercode-Isolierung und erklärte, wie sie davon abkamen, sich auf Treeshaking zu verlassen, um Servercode aus Client-Bundles zu entfernen. Stattdessen implementierten sie explizite Remix-Transformationen und führten .server-Dateisuffixe ein, die eindeutige Build-Fehler verursachen, wenn Servercode an den Client weitergegeben werden könnte.
Mark ging auf Verbesserungen bei der CSS-Verarbeitung ein und zeigte, wie sie sich aus den ursprünglichen URL-basierten CSS-Importen von Remix entwickelt haben, um die integrierten Funktionen von Vite zu nutzen. Dazu gehörten ein besseres CSS-Chunking durch Rollup und eine Lösung für den Entwicklungsmodus, die die URL-Abfragezeichenfolgen von Vite für CSS-Importe verwendet und so ein konsistentes Verhalten zwischen Entwicklung und Produktion gewährleistet und gleichzeitig Styling-Flashs vermeidet.
Diese Änderungen führten zu einer besseren Entwicklererfahrung, einer robusteren Codetrennung und einer effizienteren CSS-Verarbeitung für das Remix-Framework und zeigten, wie die Vite-Migration sie dazu veranlasste, ihre Kernarchitektur zu verbessern.
Shai Reznik beginnt seinen Vortrag mit einer lustigen, spielerischen Einführung und beschreibt sich selbst als „legendären Showman“ mit beeindruckenden Aussagen über seine technischen Fähigkeiten.
Im Vortrag konzentriert sich Shai auf Qwik, ein JS-Framework, das die App-Leistung optimiert, indem es die Notwendigkeit einer Flüssigkeitszufuhr eliminiert. Im Gegensatz zu herkömmlichen serverseitigen Rendering-Frameworks, die auf Hydration basieren, um die App interaktiv zu machen, indem sie JS auf dem Client erneut ausführen, verwendet Qwik „JavaScript-Streaming“. Dieser Prozess unterteilt die App in winzige Segmente und kodiert die Struktur und Ereignis-Listener der App während des serverseitigen Renderns. Diese Segmente werden dann an den Client gesendet, wo Qwik im Hintergrund den notwendigen Code zwischenspeichert. Dadurch wird die App interaktiv, sobald der Benutzer mit ihr interagiert, ohne auf das Laden von JS warten zu müssen.
Shai erklärt, dass Qwik diesen Prozess automatisch abwickelt und manuelle Optimierungen wie dynamische Importe und Lazy Loading überflüssig macht. Dies verbessert die Benutzererfahrung und SEO, indem die Ladezeiten beschleunigt werden. Er hebt außerdem die Fähigkeit von Qwik hervor, nahtlos zu skalieren, sodass es sowohl für einfache Marketing-Websites als auch für komplexe Apps geeignet ist. Shai versichert dem Publikum, dass Qwik stabil ist, mit einer wachsenden Community und einem wachsenden Ökosystem, einschließlich Integrationen für Authentifizierung, Tests und Bereitstellung.
Darüber hinaus führt Shai zukünftige Funktionen wie prädiktive Pufferung, KI-gesteuerte Optimierungen wie die Eliminierung von totem Code und automatisches Refactoring ein, die darauf abzielen, den Entwicklungsprozess weiter zu rationalisieren und die App-Leistung zu verbessern.
Johnson Chu, der Erfinder von Volar.js, hat ein bahnbrechendes Framework zum Erstellen von Sprachtools eingeführt, das eingebettete Sprachen in verschiedenen Umgebungen wie Vue.js, React, Svelte und in das Vite-Ökosystem integrierte Tools unterstützt. Volar.js, mittlerweile weit verbreitet, legt Wert auf Effizienz und Modularität und ist damit ein wesentlicher Bestandteil der Optimierung von Entwicklungsabläufen, insbesondere bei Projekten, die mit Vite erstellt wurden.
Johnson hat Volars Architektur aufgeschlüsselt und hervorgehoben:
Rich vom Svelte-Team kündigte eine umfassende Neufassung von Svelte 5 an, die darauf abzielt, Kerneinschränkungen im reaktiven System von Svelte zu beheben, obwohl es bei Entwicklern beliebt ist. Er skizzierte Sveltes aktuelle Struktur in vier Punkten:
Chris Manson erläutert, wie sich Ember.js, ein 13 Jahre altes Frontend-Framework, mit der Vite-Integration weiterentwickelt. Das alte Build-System von Ember, Broccoli, stellte moderne Optimierungen wie Code-Splitting vor Herausforderungen. Um dieses Problem zu beheben, wurde Embroider eingeführt, um die Lücke zwischen dem alten Build-System von Ember und modernen Bundlern zu schließen. Es verarbeitet den traditionellen Brokkolibaum von Ember in eine sauberere Struktur, die von neueren Bündelern verarbeitet werden kann. Frühe Versionen von Embroider funktionierten mit Webpack, waren jedoch nicht stabil, was weitere Arbeiten zur Kompatibilität mit Vite erforderte.
Die größte Herausforderung bestand darin, den Modul-First-Ansatz von Vite an die älteren AMD-basierten Module von Ember anzupassen. Die Lösung bestand darin, den Build-Prozess neu zu gestalten, wobei Vite den Build mit einem Ember-Plugin steuert und nicht mit der Ember-CLI, auf der Vite ausgeführt wird. Das Embroider Vite-Plugin wurde entwickelt, um Modulauflösung und Metadaten zu verarbeiten und eine reibungslosere Integration zu gewährleisten.
Das Ergebnis ist ein funktionierendes System für Ember-Apps, das mit Vite erstellt werden kann. Es werden weiterhin Anstrengungen unternommen, dies zur Standarderfahrung für neue Projekte zu machen.
In diesem Abschnitt besprechen wir die Tools und Techniken, die die Leistung von Vite auf ein neues Niveau heben. Vorträge über Nitro v3, Rust-Integration in Rollup und Local-First-SQLite-Apps zeigen Strategien für die Erstellung schnellerer und effizienterer Anwendungen.
Atila, der
Fünf Hauptmerkmale:
Live-Demos:
Daniel Roe, Nuxt-Kernteamleiter, präsentierte innovative Methoden zur Optimierung der Web-Font-Leistung mit Vite und Nuxt. Er erläuterte die Herausforderungen von Webfonts, wie Layoutverschiebungen und Leistungsprobleme. Roe stellte 3 Tools vor:
Daniel hob auch die Stärken von Vite hervor, insbesondere seine polymorphe Natur, die eine nahtlose Zusammenarbeit zwischen Frameworks wie Nuxt und dem Vite-Team ermöglicht.
Brandon Roberts, Schöpfer von AnalogJS und NgRx-Betreuer, stellt AnalogJS vor, ein auf Vite basierendes Meta-Framework für Angular. Er kündigte die Veröffentlichung von AnalogJS V1.8 an, das darauf abzielt, das Angular-Ökosystem mit Tools wie Vite, Nitro und Nx für eine Full-Stack-Lösung zu erweitern. Analog nutzt moderne Angular-Funktionen wie eigenständige Komponenten und erweitertes serverseitiges Rendering (SSR) und bietet dateibasiertes Routing, statische Site-Generierung und integrierte API-Routen.
Hauptfunktionen und Integrationen:
• SSR und statische Generierung: Unterstützung für verschiedene Plattformen (Node, Edge, Vercel usw.).
• API-Routen: Definieren Sie ganz einfach Serverendpunkte neben Komponenten.
• Testtools: Integrationen mit Vitest und Playwright, um Angular an moderne Testpraktiken anzupassen.
• Storybook & mehr: Vite ermöglicht die Integration mit Komponentenbibliotheken wie Storybook.
Roberts stellte auch experimentelle Funktionen vor, darunter analoge Single-File-Komponenten (SFCs) und Formularaktionen, die darauf abzielen, die Datenverarbeitung zwischen Client und Server zu vereinfachen.
Björn Lu begann mit Humor und scherzte über einen „Leistungsmythos“, bevor er sich mit Strategien zur Verbesserung der Leistung von Web-Apps befasste. Sie hoben drei Schlüsselaspekte hervor:
Igor, ein Softwareentwickler bei Cloudflare und ehemaliger Mitarbeiter von Angular, diskutiert das Konzept der „Web-Polylithen“ als Alternative zu herkömmlichen monolithischen Webanwendungen (polylithische Anwendungen bestehen aus vielen Komponenten, die unabhängig voneinander funktionieren, um Flexibilität und Robustheit zu verbessern). Er betont die Vorteile polylithischer Anwendungen, die aus mehreren unabhängigen Komponenten bestehen, die in unterschiedlichen Kontexten betrieben werden können, und stellt sie im Gegensatz zu monolithischen Anwendungen dar, die typischerweise einen einzigen Einstiegspunkt haben und zu Leistungsproblemen, Ineffizienzen und Sicherheitsrisiken führen können.
Zu den wichtigsten Punkten gehören:
• Aktueller Stand monolithischer Anwendungen: Viele Anwendungen wie SPAs und Node.js-Apps sind heutzutage monolithisch, was zu verschiedenen Nachteilen wie langsamerer Leistung und erhöhter Fragilität führt.
• Vorteile der polylithischen Architektur: Diese Anwendungen können schneller, sicherer und leichter zu verstehen sein, da sie eine separate Bereitstellung und weniger gemeinsame Zustände ermöglichen, wodurch die Angriffsfläche verringert wird.
• Überlegungen zur Komplexität: Obwohl Polylithen klare Vorteile haben, führen sie zu Komplexität bei der Konfiguration, dem Aufbau und der Bereitstellung. Allerdings erstellen Entwickler oft unbeabsichtigt Polylithen, insbesondere in Full-Stack-Anwendungen.
• Die Rolle von Vite v6: Die neue Umgebungs-API in Vite v6 vereinfacht die Erstellung polylithischer Anwendungen, indem sie mehrere Umgebungen und unabhängige Builds ohne überwältigende Komplexität ermöglicht und Funktionen wie Hot Module Replacement (HMR) bereitstellt.
Pooya Parsa, Erfinder von UnJS und Nitro, stellte Nitro v3 vor, ein Server-Toolkit zum Erstellen einsatzunabhängiger Server mit leistungsstarken APIs. Nitro vereinfacht die Zusammenstellung und Bündelung von Anwendungen für jeden Anbieter.
Schlüsselkomponenten:
Nitro v3 priorisiert die Kompatibilität mit Webstandards und Edge-Plattformen und behält gleichzeitig die Node.js-Unterstützung bei. Die neue API vereinfacht Serverdefinitionen und verbessert die Zusammensetzbarkeit, Beobachtbarkeit und Testbarkeit.
Pooya kündigte außerdem H3 v2 an, das mit Nitro v3 veröffentlicht wurde und eine kleinere Bundle-Größe und schnellere Antwortverarbeitung bietet, die vollständig auf Webstandards basiert. Zukünftige Updates werden die Vite-Integration und hybrid-native Polyfills für bessere Kompatibilität und Leistung auf Edge-Plattformen untersuchen.
In diesem Abschnitt behandeln wir die Updates, die darauf abzielen, das Debuggen und Testen zu optimieren. Neue Funktionen in Chrome DevTools, Vitest und dem Vue Devtool Kit bieten Entwicklern mehr Kontrolle und tragen zur Vereinfachung des Entwicklungsprozesses bei.
Jecelyn vom Chrome DevTools-Team stellte vier wesentliche Tools für schnelleres und effektiveres Debuggen vor:
In einer Reihe von drei technischen Tieftauchgängen teilten die Mitglieder des Vitest-Kernteams, Vladimir (Mitglied des Vitest- und Vite-Teams), Ari (Vitest-Kernteam und StackBlitz-Ingenieur) und Misha Kaletsky (Autor von Expect-Type), Updates über Vitest , ein schnelles und modernes Test-Framework für JavaScript, dessen wöchentliche Downloads sich im vergangenen Jahr auf etwa 6 Millionen verdreifacht haben.
In den Vorträgen wurden diese Funktionen auch praktisch demonstriert und die Benutzerfreundlichkeit und Effizienz von Vitest hervorgehoben. Die Redner hoben die Vorteile der Verwendung von Vitest für die moderne JavaScript- und TypeScript-Entwicklung hervor, insbesondere seine Fähigkeit, Entwicklungsabläufe zu beschleunigen und die Codequalität sicherzustellen.
Guillaume Chau, ein Mitglied des Vue.js-Kernteams, stellte das Devtool Kit vor, ein vereinheitlichendes Framework zur Rationalisierung und Verbesserung der Entwicklung und Kompatibilität von Debugging-Tools in Vue.js, Nuxt und möglicherweise anderen Frameworks. Die funktionsreichen, aber inkompatiblen Nuxt- und Vue-Devtools führten zur Entwicklung des Devtool-Kits, das darauf abzielt, sie unter einem gemeinsamen Satz von Dienstprogrammen und APIs zu vereinen.
Das Hauptziel besteht darin, Dienstprogramme und APIs zu standardisieren, um eine nahtlose Interoperabilität zwischen Devtools zu ermöglichen und die Erstellung neuer Devtools für jedes Framework, über Vue.js oder Nuxt hinaus, zu erleichtern und gleichzeitig verschiedene Umgebungen wie Browser, Node.js-Server usw. zu unterstützen eigenständige Anwendungen.
Das Devtool Kit besteht aus vier Modulen:
Hauptmodul: Registriert Seitenmodule und steuert die Gesamtfunktionalität.
Seitenmodul: Funktioniert im Benutzeranwendungskontext und ermöglicht die Interaktion mit dem App-Status.
Anzeigemodul: Verwaltet die sichtbare Schnittstelle und zeigt dem Benutzer Informationen an.
Servermodul: Verwaltet serverseitige Interaktionen während der Entwicklung.
Das Devtool Kit verfügt über ein bidirektionales, typisiertes Kommunikationssystem, das Technologien wie postMessage und WebSockets verwendet und eine nahtlose Interaktion zwischen Modulen unabhängig vom Kontext ermöglicht.
Nicht zu vergessen sind die modularen „Applets“, die ein hochgradig individuelles Devtools-Erlebnis bieten und Funktionen von Vue.js, Nuxt und sogar Tools von Drittanbietern wie Pinia oder Tailwind integrieren.
Joyee, ein Node.js-Mitarbeiter, stellt aktuelle und kommende Verbesserungen am Modulladesystem von Node.js vor und konzentriert sich dabei auf eine bessere ESM-Unterstützung und Entwicklererfahrung.
ESM in require() (experimentell)
o CommonJS-Module können jetzt ES-Module erfordern().
o Einschränkung: Kein Support auf oberster Ebene.
o Kommt zu Node.js 23 stabil.
Entwicklerverbesserungen
o Automatische Erkennung von ES-Modulen in .js-Dateien.
o Modulkompilierungscache für schnelleres Laden.
o Integrierte Modulerkennung ohne Warten auf oberster Ebene.
o Tools zum Auffinden problematischen Wartecodes auf oberster Ebene.
Paketverwaltung:
o Neue Exportbedingung, um Probleme mit doppelten Paketen zu verhindern
o Bessere Unterstützung für die Migration von CommonJS zu ESM
Entwicklertools:
o Synchrone Modullade-Hooks
o Laufzeitkonfigurationsdateien für die Umgebungseinrichtung
Der Schwerpunkt liegt auf der Verbesserung der ESM-Unterstützung bei gleichzeitiger Wahrung der Abwärtskompatibilität und der Entwicklererfahrung.
In diesem Abschnitt befassen wir uns mit realen Anwendungen von Vite. Fallstudien von Excalidraw, Shopify und anderen Projekten zeigen, wie die Geschwindigkeit, Flexibilität und Entwicklererfahrung von Vite in Produktionsumgebungen einen Unterschied machen.
Aakansha, ein Betreuer von Excalidraw, spricht über die Erfahrungen bei der Migration des Projekts von Create React App (CRA) zu Vite, getrieben von der Notwendigkeit schnellerer Build- und HMR-Zeiten, größerer Flexibilität und besserer Wartung.
Der Migrationsprozess begann, nachdem Patak im Jahr 2021 Vite in Excalidraw integriert hatte, was die Aufmerksamkeit des Teams erregte. Aufgrund der schnelleren Build-Zeiten, des besseren Austauschs von Hot-Modulen und der wachsenden Community von Vite haben sie sich für eine Migration entschieden. Die Herausforderungen sind:
Nach der Bereitstellung stieß das Team jedoch auf ein großes Problem – eine erhebliche Leistungseinbuße im HMR bei großen Dateien. Dies wirkte sich negativ auf die Entwicklererfahrung aus und führte zu einem Rückfall. Nach der Untersuchung und dem Entfernen eines Plugins konnten sie das Problem beheben und erfolgreich bereitstellen.
Die Vite-Migration von Excalidraw, die mit umfangreicher Community-Hilfe abgeschlossen wurde, verbesserte das Entwicklererlebnis und optimierte Builds.
Jason Miller, Entwickler, der an Shopifys größter React-Codebasis (5 Millionen Zeilen TypeScript und 800 Routen) arbeitet, betonte die Vorteile der Migration von Webpack zu Vite. Diese Migration führte zu einer Startzeit von 15 Sekunden, einer Reduzierung der HMR-Leistung von 12 Sekunden auf 5 Millisekunden und einer optimierten Modulanzahl von 18.000 auf 2.300. Diese Verbesserungen ermöglichten es dem Team, auf lokale Entwicklung umzusteigen, anstatt sich auf cloudbasierte IDEs zu verlassen.
Christoph Nakazawa, Spieleentwickler Christoph erklärte, wie Vite es ihm ermöglichte, Athena Crisis zu entwickeln, ein plattformübergreifendes Spiel mit 214.000 Zeilen JavaScript. Vite bot 30 ms Hot-Reloading, Offline-Unterstützung über das vite-plugin-pwa und ermöglichte die nahtlose Bündelung von Frontend- und Backend-Code, was zu einem schnellen Bereitstellungszyklus von 3 Minuten auf mehreren Plattformen führte.
Alvaro Sabu, Developer Experience Engineer bei Storyblok und Schöpfer der TresJS-Bibliothek, erzählte auf der ViteConf-Landingpage von der Reise zum Erstellen des 3D-Puzzles. Dieses interaktive Rätsel, das Benutzer über einen integrierten Code-Editor lösen können, wurde mit TresJS, einer Vue-basierten 3D-Bibliothek, erstellt.
Alvaro beschrieb die wichtigsten Schritte bei der Gestaltung des Puzzles: die Erstellung von Tetraeder- und Oktaederstücken, die Implementierung einer Rotationslogik mit Quaternionen und Animationsrahmen und deren nahtlose Integration in die Webseite. Ein herausragendes Merkmal war die Verwendung von WebContainern zur Einbettung eines Vite-Entwicklungsservers in die Seite, sodass Benutzer das JavaScript hinter dem Puzzle in Echtzeit bearbeiten können.
Alvaro bot auch Einblicke in die Bewältigung von Herausforderungen, wie die Verwendung temporärer Gruppen für aufeinanderfolgende Rotationen und die Optimierung der Leistung. Das Projekt unterstreicht die Fähigkeiten von TresJS und WebContainers zur Erstellung immersiver, bearbeitbarer 3D-Weberlebnisse.
In diesem Abschnitt diskutieren wir die Zukunft des Vite-Ökosystems und seinen Community-Fokus. Vorträge über Dokumentation, Open-Source-Prinzipien und Framework-Konvergenz unterstreichen Vites Rolle beim Aufbau einer kollaborativen, zukunftsorientierten Entwickler-Community.
Ben Holmes stellte „Local First“-Apps vor und demonstrierte deren Potenzial, vollständig im Browser ausgeführt zu werden. Er demonstrierte dies anhand von Astro und betonte, wie SQLite clientseitig mit Bibliotheken wie SQLocal verwaltet werden kann und Daten sicher im Browser speichert. Die wichtigsten Erkenntnisse sind:
Suchfunktion:
. Einfache Suche: Ursprünglich wurde eine Textsuche mit dem LIKE-Operator von SQL implementiert.
. KI-gestützte Suche: Integriert den Universal Sentence Encoder von
TensorFlow für intelligente, ähnlichkeitsbasierte Suchen, die es Benutzern ermöglichen, relevante Dokumente auch mit vagen Begriffen zu finden.
Technische Einblicke: Besprochene Herausforderungen wie das Laden großer KI-Modelle in den Browser und die Bedeutung der Verwendung von Web Workern für eine verbesserte Leistung.
Benutzererfahrung: Die Demo enthielt browsernative Elemente für Barrierefreiheit und reibungslose Animationen mit Ansichtsübergängen, wodurch das Sucherlebnis verbessert wurde.
Abschließend hob Ben die spannende Zukunft der On-Device-KI-Berechnung in Local-First-Anwendungen hervor.
Mat Bilmann, CEO von Netlify, skizzierte den Wandel in der Webentwicklung von monolithischen Strukturen hin zu Jamstack und modernen Frameworks und betonte die Vorteile der Entkopplung von Frontend und Backend für mehr Flexibilität und Skalierbarkeit. Während frühe Frameworks wie Gatsby, Next.js und Nuxt.js Arbeitsabläufe rationalisierten, erhöhten sie auch die Komplexität.
Bilmann plädiert nun für einen Übergang zu kleineren, zusammensetzbaren Grundelementen, die maßgeschneidertere Webanwendungen ermöglichen. Vite spielt bei diesem Wandel eine Schlüsselrolle und bietet eine solide Grundlage, die neue Frameworks wie Astro, TanStack Start und Vike hervorgebracht hat. Bei diesen Frameworks stehen Einfachheit, Modularität und Leistung im Vordergrund und ermöglichen es Entwicklern, effiziente und wartbare Webanwendungen zu erstellen.
Minko Gechev, Produktleiter von Angular bei Google, diskutiert die Ähnlichkeiten zwischen Angular und React sowie zukünftige Trends bei Front-End-Frameworks. Er erklärt, wie beide Frameworks trotz der Verwendung unterschiedlicher Syntaxen (Vorlagen vs. JSX) ähnliche Ansätze zur Änderungserkennung und -optimierung nutzen.
Ein Hauptschwerpunkt von Minkos Vortrag ist die Einführung von Signalen, einem Grundelement, das auch von Frameworks wie Vue, Solid und Svelte verwendet wird. Angulars Implementierung von Signals hat die Leistung verbessert, indem Datenabhängigkeiten verfolgt und unnötige erneute Renderings minimiert werden.
Minko hebt die Zusammenarbeit von Angular mit dem Wiz-Framework von Google hervor, die darauf abzielt, Leistungsoptimierungen zu teilen und das Entwicklererlebnis zu verbessern. Bemerkenswerte Beispiele sind die Ereigniswiedergabe, die Interaktivitätslücken effizient schließt, und die inkrementelle Hydratation, die die Seitenladeleistung verbessert.
Er prognostiziert, dass Frameworks sich weiterhin auf feinkörniges Laden von Code und Ereigniswiedergabe konzentrieren werden, um die Benutzererfahrung zu verbessern, wobei Stabilität, Ökosystem und persönliche Vorlieben bei der Auswahl von Frameworks im Vordergrund stehen.
Brian Douglas (B Dougie), eine Schlüsselfigur hinter dem OpenSauced-Projekt, diskutiert die Kultur und das Wachstum des Vite-Ökosystems. Er betont, dass Vite mittlerweile 15 Millionen Downloads pro Woche verzeichnet, ein beeindruckender Meilenstein.
Dougie stellt außerdem StarSearch vor, ein von seinem Team entwickeltes Tool zur Identifizierung wichtiger Mitwirkender in der Vite-Community, und hebt Persönlichkeiten wie Anthony Fu, Patak, Brandon Roberts und Toby für ihre Rolle bei der Förderung der Entwicklung und Einführung von Vite hervor. Dougie schließt mit einem Zitat von Evan Yu, in dem er betont, dass großartige Mitwirkende der Schlüssel zum Erfolg von Vite sind und dass der Fokus von Vite auf Entwicklererfahrung und Problemlösung von zentraler Bedeutung für sein Wachstum in Front-End-Ökosystemen ist.
Anthony Fu untersuchte in seinem Vortrag das Konzept der Progressivität in der Open-Source-Tool-Entwicklung. Hier sind die wichtigsten Erkenntnisse:
Was macht ein gutes Open-Source-Tool aus?
Sarah Rainsbergers Vortrag betonte, dass Dokumentation ein wirkungsvolles, oft übersehenes Werkzeug für das Community-Wachstum ist. Die Investition in gut gepflegte und zugängliche Dokumente fördert eine engagierte, nachhaltige Community und stärkt das Projekt insgesamt.
Sie erklärt, wie Dokumente eine aktive Open-Source-Community fördern können:
In diesem Abschnitt werden wir bahnbrechende Frameworks erkunden, die Vite zu neuen Fähigkeiten führen. Vorträge zu Vike, WebAssembly-Integration und Zero to One zeigen, wie Vite innovative Ansätze ermöglicht, die die nächste Generation von Webanwendungen prägen.
Das Framework neu erfinden, von Null auf Eins
Nathan Wienert stellte „One“ vor, ein neues React-Framework, das sich durch zwei Hauptmerkmale auszeichnet:
Die Einrichtung ist unkompliziert: Erstellen Sie eine One-App mit npx one, die als Vite-Plugin für eine einfache Konfiguration fungiert. One unterstützt verschiedene Rendering-Modi (serverseitig, statisch oder clientseitig) und erweitert Webfunktionen mit Tamagui für optimiertes Styling.
Das Framework verwaltet den Datenabruf und die Synchronisierung zwischen Server und Client effizient und verwendet SWC als Ersatz für Babel für schnellere Build-Zeiten. Mit plattformspezifischen Erweiterungen ermöglicht es unterschiedliche Erlebnisse auf allen Geräten und stellt seine Vielseitigkeit sowohl für statische als auch dynamische Anwendungen unter Beweis.
Nathans Sitzung betonte das Ziel von One, die Web- und native App-Entwicklung nahtlos zu verbinden, und machte es jetzt verfügbar, während Zero sich der öffentlichen Beta nähert.
Natalia Venditto, Hauptleiterin für JavaScript-Entwicklererfahrung bei Microsoft Azure, erläutert, wie WebAssembly eine leistungsstarke Codeausführung in JavaScript-Umgebungen ermöglicht, sowohl clientseitig als auch serverseitig.
Wichtige technische Punkte
WebAssembly-Grundlagen
o Kompiliert Code aus Sprachen wie C/Rust in eine tragbare Binärdatei.
o Lässt sich über WebAssembly-Bindungen nahtlos in JavaScript integrieren.
o Führt rechenintensive Vorgänge effizienter aus.
Entwicklungstools
o Vite-Plugins für die WebAssembly-Integration.
o Debugging-Unterstützung in Browsern und VS-Code.
o Direktes Debuggen des kompilierten Codes auf Quellebene.
Komponentenmodell
o Neue Architektur für bessere sprachübergreifende Unterstützung.
o Verarbeitet komplexe Datentypen, die über Zahlen hinausgehen.
o Aktiviert die JavaScript-zu-WebAssembly-Kompilierung.
Abschließend betont sie das Potenzial von WebAssembly für Portabilität und Komposition in der Entwicklung und lädt Entwickler ein, sich mit den sich entwickelnden Tools und Plugins zu beschäftigen, die im Vite-Ökosystem verfügbar sind.
Rom Brillout präsentierte Vike, ein Frontend-Framework der nächsten Generation, das auf Flexibilität ausgelegt ist. Er erklärte, dass Vike wie Next.js oder Nuxt sei, jedoch mit hochgradig anpassbaren Erweiterungen, die es Entwicklern ermöglichen, jedes UI-Framework zu verwenden. Vike kann beispielsweise Apps mit einer Mischung aus React, Solid oder sogar Vue 2 und 3 im selben Projekt ausführen. Es unterstützt alle Rendering-Strategien (SPA, SSR und SSG) und lässt sich in verschiedene Datenabrufmethoden (RPC, REST, GraphQL) integrieren.
Das Hauptunterscheidungsmerkmal ist Vikes Open-Source-Modell unter der MIT-Lizenz. Anstelle eines traditionellen kommerziellen Modells bietet Vike einen einzigartigen Ansatz, bei dem Unternehmen für die Unternehmensnutzung bezahlen können, was sie wählen. Ziel ist es, Vike zu 100 % Open Source zu halten, ein nachhaltiges Geschäftsmodell bereitzustellen und gleichzeitig die Zugänglichkeit für alle Entwickler sicherzustellen. Trotz seiner Flexibilität und Anpassungsmöglichkeiten betonte Brillout, dass Vike bereits für den Produktionseinsatz stabil ist und plant, bald Version 1.0 zu veröffentlichen.
Vielen Dank, dass Sie es bis zum Ende meines Artikels geschafft haben! Ich hoffe, Sie fanden es informativ und haben neue Einblicke in die spannenden Entwicklungen der ViteConf 2024 gewonnen.
Die Veröffentlichung dieses Artikels hat etwas länger gedauert als geplant, da ich nur an meinen Samstagen daran arbeiten konnte – aber gute Dinge brauchen Zeit, oder? ?
Ich bin besonders meinem lieben Freund dankbar, der mir geholfen hat, den Inhalt zu überprüfen und zu verfeinern, und allen, die mich zur Veröffentlichung ermutigt haben. Besonderer Dank geht an ChatGPT und Claude? Ich hoffe, dass Sie mir dabei geholfen haben, mein Englisch zu verfeinern.
Dies ist mein erster technischer Artikel und Ihre Unterstützung bedeutet mir wirklich sehr viel. Ich freue mich darauf, mehr zu schreiben und weiterhin Wissen mit der Entwickler-Community zu teilen.
Bitte teilen Sie mir gerne Ihre Gedanken und Ihr Feedback mit – ich würde mich freuen, von Ihnen zu hören! Sie finden mich unter:
X (Twitter): @Mohamed_LamineF oder LinkedIn: mohamedlaminef.
Das obige ist der detaillierte Inhalt vonViteConf-Innovationen, Ankündigungen und der Weg in die Zukunft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!