Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung des Unterschieds zwischen Webpack require.ensure und require AMD_javascript-Kenntnissen

韦小宝
Freigeben: 2017-12-15 10:49:08
Original
1536 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die detaillierte Erklärung von Webpack dem Unterschied zwischen require.ensure und require AMD vor. Der Herausgeber findet es recht gut und wird auch als Referenz für alle verwendet. Wenn Sie sich für Webpack interessieren, können Sie dem Herausgeber folgen, um einen Blick darauf zu werfen

Einführung

Der Unterschied zwischen require-ensure und require-amd:

require-amd

Beschreibung: Identisch mit der Anforderungsfunktion der AMD-Spezifikation. Bei Verwendung werden ein Modularray und eine Rückruffunktion übergeben Alle Module wurden heruntergeladen und ausgeführt

Syntax: require(dependencies: String[], [callback: function(...)])

Parameter

  1. Abhängigkeiten: Modulabhängigkeitsarray

  2. Rückruf: Rückruffunktion

require-ensure

Hinweis: require.ensure lädt abhängige Module nur herunter, wenn sie benötigt werden. Wenn alle durch die Parameter angegebenen Module heruntergeladen wurden (die heruntergeladenen Module wurden noch nicht ausgeführt), wird die durch die angegebene Rückruffunktion ausgeführt

Parameter werden ausgeführt. require.ensure erstellt einen Block, und Sie können den Namen des Blocks angeben. Wenn der Blockname bereits vorhanden ist, werden die abhängigen Module beim Erstellen des Webpacks separat generiert Datei.

Syntax: require.ensure(dependencies: String[], callback: function([require]), [chunkName: String])

  1. dependencies: Array abhängiger Module

  2. Callback: Callback-Funktion, beim Aufruf wird ein erforderlicher Parameter übergeben

  3. chunkName: Modulname, der zum Erstellen verwendet wird Verwenden Sie beim Generieren von Dateien

Hinweis: Das requi.ensure-Modul wird nur heruntergeladen und nicht ausgeführt. Erst nachdem die Rückruffunktion require (Modulname) verwendet, wird dieses Modul verwendet wird ausgeführt.

Beispiel

require-amd

Quellcode

webpack.config.amd .js


var path = require("path");
module.exports = {
  entry: "./example.amd.js",
  output: {
    path: path.join(__dirname, "amd"),
    filename: "[name].bundle.js",
    chunkFilename: "[id].chunk.js"
  }
};
Nach dem Login kopieren


example.amd.js


require(["./module1"], function(module1) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
});
Nach dem Login kopieren


module1.js


console.log("module1");
module.exports = 1;
Nach dem Login kopieren


module2.js


console.log("module2");
module.exports = 2;
Nach dem Login kopieren


Ergebnisse erstellen

Führen Sie webpack --config webpack.config.amd.js über den Befehl aus Zeile
- main.bundle.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

Ergebnisse ausführen

amd/index.html im Browser ausführen, Konsolenausgabe:


module1
aaa
module2
bbb
Nach dem Login kopieren


require-ensure

Quellcode

webpack.config.ensure.js


var path = require("path");
module.exports = {
  entry: "./example.ensure.js",
  output: {
    path: path.join(__dirname, "ensure"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  }
};
Nach dem Login kopieren


example.ensure.js


require.ensure(["./module1"], function(require) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
  require("./module1");
}, 'test');
Nach dem Login kopieren


module1.js
Das Gleiche wie oben

module2.js
Dasselbe wie oben

Ergebnisse erstellen

Webpack in der Befehlszeile ausführen --config webpack.config .ensure.js
- main.bundle.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

Ergebnis ausführen

Führen Sie secure/index.html im Browser aus und die Konsolenausgabe lautet:

aaa
module2
bbb
module1

require-ensure-chunk

Quellcode

webpack.config.ensure.chunk.js


var path = require("path");
module.exports = {
  entry: "./example.ensur.chunk.js",
  output: {
    path: path.join(__dirname, "ensure-chunk"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  }
};
Nach dem Login kopieren


example.ensur.chunk.js


require.ensure(["./module1"], function(require) {
  console.log("aaa");
  require("./module1");
  console.log("bbb");
}, 'common');

require.ensure(["./module2"], function(require) {
  console.log("ccc");
  require("./module2");
  console.log("ddd");
}, 'common');
Nach dem Login kopieren


module1.js
Gleiches wie oben

module2.js
Gleiches wie oben

Ergebnisse erstellen

Führen Sie webpack --config webpack in der Befehlszeile aus
- module2.js


Ergebnis ausführen

sure/index.html im Browser ausführen, Konsolenausgabe: aaa

module1

bbb

ccc

1module2
ddd


Das Obige ist der gesamte Inhalt dieses Artikels, der für das Lernen aller hilfreich sein wird, und ich hoffe auch dass jeder die chinesische PHP-Website unterstützen wird.

Verwandte Empfehlungen:

Detaillierte Erläuterung des Vue-On-Demand-Ladekomponenten-Webpacks require.ensure

Detaillierte Erläuterung des Unterschieds zwischen Webpack require.ensure und require AMD

Zusammenfassung des Tutorials zur Front-End-Leistungsoptimierung des Webpack-Lernprogramms

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Unterschieds zwischen Webpack require.ensure und require AMD_javascript-Kenntnissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!