[JAVA] Mechanismus zum Konvertieren in eine Sprache, die der Browser erkennen kann

Höhere und niedrigere Sprachen

** ・ Hochklassige Sprache ** Hochsprachen sind Programmiersprachen, die für den Menschen leichter zu verstehen sind als Maschinen. Darüber hinaus bedeutet "hochklassig" keine ausgezeichnete Sprache, sondern bedeutet, dass es möglich ist, Elemente, die für das Modell und das Betriebssystem einzigartig sind, mit einem hohen Abstraktionsgrad und vielen Sprachen zu beschreiben, die für die Entwicklung von Anwendungssoftware usw. verwendet werden. Wird als hochklassige Sprache klassifiziert, wird der Ausdruck "hochklassig" verwendet.

** ・ Untere Sprache ** Sprachen, die für Maschinen leicht zu erkennen sind, werden als einfache Sprachen bezeichnet. "Niedriger" bedeutet nicht, dass es sich um eine minderwertige Sprache handelt, sondern dass sie näher an der Hardware liegt Daher wird der Ausdruck "minderwertig" verwendet.

Um die Datei im Browser anzuzeigen, erkennt das Gerät sie, nachdem sie in einer höheren Sprache entwickelt wurde. Sie müssen es in eine niedrigere Sprache übersetzen, die Sie können, und diese Übersetzung heißt ** Kompilierung **.

kompilieren

Es ist die Aufgabe, eine Programmiersprache so zu übersetzen, dass sie vom Bediener verstanden werden kann. Das Kompilieren heißt ** Compiler (eine Opportunity-freundliche Programmiersprache) ** Es wird vom Programm gemacht. Wenn es eine Sprache gibt, die der Compiler nicht erkennen kann, müssen Sie sie in eine Sprache ** vorkompilieren **, die im Voraus erkannt werden kann.

Vorkompiliert

Vorkompilierung, mit der der Compiler Sprachen übersetzen kann, die er nicht übersetzen kann. Alternativ bezieht es sich auf die für die Hauptverarbeitung erforderliche Vorverarbeitung. Mit anderen Worten, Vorkompilierung ist die Kompilierung, die vor der Kompilierung oder Hauptverarbeitung durchgeführt werden sollte.

In einer Webanwendung wird beispielsweise eine in einer höheren Sprache geschriebene Datei vorkompiliert und dann an den Browser übergeben, damit der Webbrowser den Hauptprozess zum Lesen und Anzeigen der statischen Datei ausführen kann.

Es gibt einen Mechanismus namens ** Asset Pipeline ** als Methode zur Durchführung einer solchen Vorkompilierung.

Asset-Pipeline

Diese Funktion organisiert statische Dateien, die als Assets wie JavaScript und CSS bezeichnet werden, in kleine Teile. Da die Funktion zum Vorkompilieren von Hochsprachen zur Asset-Pipeline hinzugefügt werden kann, kann diese auf die Entwicklung mit SCSS, TypeScript usw. angewendet werden.

Die Verarbeitung der Asset-Pipeline erfolgt im Ablauf von ** "(1) Vorkompilierung", "(2) Verkettung", "(3) Komprimierung" und "(4) Platzierung" **. Nachdem Sie mehrere statische Dateien vorkompiliert und verkettet haben, komprimieren und reduzieren Sie das Gewicht und legen Sie es im "öffentlichen Verzeichnis" ab, damit es an den Browser übergeben werden kann.

Bisher verwendete Rails standardmäßig die Asset-Pipeline von Gem namens ** Sprockets **, um CSS, JavaScript usw. vorkompilieren zu können.

In den letzten Jahren ist es jedoch üblich geworden, mit JavaScript-Bibliotheksfunktionen zu entwickeln. Ab Version 6 ist die Vorkompilierung mit dem ** Modulbündler ** zum Mainstream geworden.

Modulbündler

Module Bundler ist ein Tool zum Verwalten von JavaScript-Modulen unter Berücksichtigung ihrer Abhängigkeiten.

Ein Modul ist eine Gruppe von Prozessen, die Funktionen einzeln aufteilen, damit sie aus anderen Dateien gelesen werden können. Wenn in JavaScript mehrere Funktionen in Dateien unterteilt sind, treten Probleme beim Kombinieren zu einer Datei auf. In der Node.js-Umgebung werden Funktionen daher in Einheiten behandelt, die als Module bezeichnet werden.

Mit Modulen können Sie eine große Anzahl von Features in mehrere Dateien aufteilen und die geteilten Features in einer einzigen Datei kombinieren, die einwandfrei funktioniert. Es gibt jedoch ein Problem, dass es nicht ordnungsgemäß funktioniert, wenn ein Modul vorhanden ist, das aufgrund der erstellten Abhängigkeit nicht geladen werden kann, da es in mehrere Teile unterteilt ist.

Der Modulbündler, der alle Module in einem Stapel verwaltet, löst dieses Problem. In den letzten Jahren hat sich ** webpack ** zum Mainstream unter den Modulbündlern entwickelt.

webpack webpack ist ein Tool zum Verwalten verschiedener JavaScripts, die beim Erstellen einer Webanwendung erforderlich sind. Es gibt vier Hauptaufgaben von Webpack.

Grundelemente Rolle
Entry Entscheiden Sie, welche Datei als Referenz (Einstiegspunkt) zum Auflösen der Abhängigkeit verwendet werden soll
Output Geben Sie an, wo und unter welchem Namen die Datei ausgegeben werden soll, die als Einstiegspunkt verwendet und vom Webpack kompiliert wird.
Loaders Lesen (laden) Sie die Methode zum Konvertieren von anderen Dateien wie CSS und HTML als JavaScript in Module und führen Sie die angegebene Verarbeitung durch.
Plugins Führen Sie Aufgaben ein und erweitern Sie sie (Plug-In), die der Loader nur zum Gruppieren von Dateien ausführen kann, z. B. zur Komprimierung.

Mit anderen Worten, mithilfe von Webpack ist es möglich, die JavaScript-Bibliothek und verschiedene andere Sprachen als JavaScript zu konvertieren, zu komprimieren und dann zu platzieren, wo immer Sie möchten.

Es ist möglich, Befehle durch Einführung von Webpack in Rails auszuführen. Da es jedoch etwas schwierig ist, die Einstellungsdatei zu beschreiben, gibt es ein Juwel namens ** Webpacker **, das die Einstellung vereinfacht.

Webpacker Es ist ein Juwel, das Webpack zu einer Rails-Spezifikation macht und eine dedizierte Einstellungsdatei und Hilfsmethode vorbereitet. Ab Rails Version 6 wird Webpacker standardmäßig installiert. Webpacker stellt JavaScript-Pakete zur Verfügung und kompiliert statische Dateien ähnlich wie die Sprockets-Asset-Pipeline.

Recommended Posts

Mechanismus zum Konvertieren in eine Sprache, die der Browser erkennen kann
Beschreibung, die es nur für Poster zugänglich macht
[Android] Ich möchte einen ViewPager erstellen, der für Tutorials verwendet werden kann
Wie erstelle ich einen MOD für Slay the Spire?
Eine Einführung in Java, die Menschen erzählt, die schon lange C-Sprache sprechen
[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können
SDWebImage: So löschen Sie den Cache für eine bestimmte UIImageView
Suchen Sie eine Switch-Anweisung, die in einen Switch-Ausdruck konvertiert werden kann
Ein Memorandum, um den juckenden Ort für Java Gold zu erreichen
Erstellen wir einen Docker-Container, der SSH auf die Mindestkonfiguration von CentOS 8 ausführen kann
Wie gehe ich mit dem Typ um, den ich 2 Jahre lang über das Schreiben eines Java-Programms nachgedacht habe?
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
So identifizieren Sie den Pfad, auf dem leicht Fehler gemacht werden können
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Eine Geschichte über den Wechsel von Fähigkeiten von COBOL, das Ende der 20er Jahre 5 Jahre lang gepflegt wurde, zu einer Web-Sprache
Über die Sprache, die von nun an zu lernen ist
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
So interagieren Sie mit einem Server, der die App nicht zum Absturz bringt
Glassfish Tuning List, die ich vorerst behalten möchte
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht