Heim > Web-Frontend > js-Tutorial > Webpack-Erste-Schritte-Tutorial

Webpack-Erste-Schritte-Tutorial

PHPz
Freigeben: 2019-09-23 13:05:34
nach vorne
3101 Leute haben es durchsucht

Webpack ist ein Front-End-Tool zum Laden/Verpacken von Ressourcen. Es führt eine statische Analyse basierend auf Modulabhängigkeiten durch und generiert dann gemäß den angegebenen Regeln entsprechende statische Ressourcen für diese Module.

Dieses Kapitel hat den Test basierend auf Webpack3.0 bestanden.

Webpack-Erste-Schritte-Tutorial

Auf dem Bild können wir sehen, dass Webpack eine Vielzahl statischer Ressourcen (JS, CSS usw.) in eine statische Datei konvertieren kann, wodurch Seitenanforderungen reduziert werden.

Als nächstes stellen wir kurz die Installation und Verwendung von Webpack vor.

Installieren Sie Webpack

Bevor Sie Webpack installieren, muss Ihre lokale Umgebung node.js unterstützen.

Aufgrund der langsamen Installationsgeschwindigkeit von npm verwendet dieses Tutorial das Taobao-Image und seinen Befehl cnpm. Anweisungen zur Installation und Verwendung finden Sie unter: Taobao NPM-Image verwenden.

Verwenden Sie cnpm, um das Webpack zu installieren:

cnpm install webpack -g
Nach dem Login kopieren

Projekt erstellen

Als nächstes erstellen wir eine Verzeichnis-App:

mkdir app
Nach dem Login kopieren

Fügen Sie die Datei runoob1.js im App-Verzeichnis hinzu. Der Code lautet wie folgt:

document.write("It works.");
Nach dem Login kopieren

Fügen Sie die Datei index.html im App-Verzeichnis hinzu. Der Code lautet wie folgt:

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
    </body>
</html>
Nach dem Login kopieren

Als nächstes verwenden wir den Webpack-Befehl zum Verpacken:

webpack runoob1.js bundle.js
Nach dem Login kopieren

Durch Ausführen des obigen Befehls wird die Datei runoob1.js kompiliert und die Datei bundle.js generiert. Nach Erfolg lauten die Ausgabeinformationen wie folgt:

Hash: a41c6217554e666594cb
Version: webpack 1.12.13
Time: 50ms
    Asset     Size  Chunks             Chunk Names
bundle.js  1.42 kB       0  [emitted]  main
   [0] ./runoob1.js 29 bytes {0} [built]
Nach dem Login kopieren

index.html im Browser öffnen und ausgeben. Das Ergebnis ist wie folgt:

Webpack-Erste-Schritte-Tutorial

Eine zweite JS-Datei erstellen

Als nächstes erstellen wir eine weitere JS-Datei runoob2.js, der Code lautet wie folgt:

module.exports = "It works from runoob2.js.";
Nach dem Login kopieren

Aktualisieren Sie die Datei runoob1.js, der Code lautet wie folgt:

document.write(require("./runoob2.js"));
Nach dem Login kopieren

Weiter Wir verwenden den Webpack-Befehl zum Packen:

webpack runoob1.js bundle.js
 
Hash: dcf55acff639ebfe1677
Version: webpack 1.12.13
Time: 52ms
    Asset     Size  Chunks             Chunk Names
bundle.js  1.55 kB       0  [emitted]  main
   [0] ./runoob1.js 41 bytes {0} [built]
   [1] ./runoob2.js 46 bytes {0} [built]
Nach dem Login kopieren

Browse Das Ausgabeergebnis ist wie folgt:

Webpack-Erste-Schritte-Tutorial

Webpack führt eine statische Analyse basierend auf Modulabhängigkeiten und diesen Dateien durch (Module) werden in die Datei bundle.js aufgenommen. Webpack weist jedem Modul eine eindeutige ID zu, indiziert das Modul und greift über diese ID auf das Modul zu. Wenn die Seite startet, wird zuerst der Code in runoob1.js ausgeführt, und andere Module werden ausgeführt, wenn require ausgeführt wird.


LOADER

Webpack selbst kann nur JavaScript-Module verarbeiten, die Sie verwenden möchten Lader zur Konvertierung.

Wenn wir also CSS-Dateien zur Anwendung hinzufügen müssen, müssen wir den CSS-Loader und den Style-Loader verwenden. Sie führen zwei verschiedene Dinge aus: Der CSS-Loader durchsucht die CSS-Datei und findet dann die URL. ) Ausdrücke werden dann verarbeitet und der Style-Loader fügt den ursprünglichen CSS-Code in ein Style-Tag auf der Seite ein.

Als nächstes verwenden wir die folgenden Befehle, um den CSS-Loader und den Style-Loader zu installieren (für die globale Installation ist der Parameter -g erforderlich).

cnpm install css-loader style-loader
Nach dem Login kopieren

Nach dem Ausführen des obigen Befehls wird das Verzeichnis node_modules im aktuellen Verzeichnis generiert, das das Installationsverzeichnis von CSS-Loader und Style-Loader ist.

Als nächstes erstellen Sie eine style.css-Datei mit dem folgenden Code:

body {
    background: yellow;
}
Nach dem Login kopieren

Ändern Sie die runoob1.js-Datei mit dem folgenden Code:

require("!style-loader!css-loader!./style.css");
document.write(require("./runoob2.js"));
Nach dem Login kopieren

Als nächstes verwenden wir den Webpack-Befehl, um Paket:

webpack runoob1.js bundle.js
 
Hash: a9ef45165f81c89a4363
Version: webpack 1.12.13
Time: 619ms
    Asset     Size  Chunks             Chunk Names
bundle.js  11.8 kB       0  [emitted]  main
   [0] ./runoob1.js 76 bytes {0} [built]
   [5] ./runoob2.js 46 bytes {0} [built]
    + 4 hidden modules
Nach dem Login kopieren

Beim Zugriff im Browser lautet das Ausgabeergebnis wie folgt:

Webpack-Erste-Schritte-Tutorial

Wenn CSS-Dateien erforderlich sind, muss das Loader-Präfix geschrieben werden!style -loader!css-loader!, natürlich können wir den benötigten Loader automatisch entsprechend dem Modultyp (Erweiterung) binden. Ändern Sie require("!style-loader!css-loader!./style.css") in runoob1.js in require("./style.css"):

runoob1.js Die Datei Anschließend wird

require("./style.css");
document.write(require("./runoob2.js"));
Nach dem Login kopieren

ausgeführt: Auf

webpack runoob1.js bundle.js --module-bind &#39;css=style-loader!css-loader&#39;
Nach dem Login kopieren

wird im Browser zugegriffen und das Ausgabeergebnis lautet wie folgt:

Webpack-Erste-Schritte-Tutorial

Offensichtlich haben die beiden Möglichkeiten, den Loader zu verwenden, den gleichen Effekt.


Konfigurationsdatei

Wir können einige Kompilierungsoptionen für eine einheitliche Verwaltung in die Konfigurationsdatei einfügen:

Erstellen Sie die Datei webpack.config.js. Der Code lautet wie folgt:

module.exports = {
    entry: "./runoob1.js",
    output: {
        path: __dirname,
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style-loader!css-loader" }
        ]
    }
};
Nach dem Login kopieren

Als nächstes müssen wir nur noch den Befehl webpack ausführen, um die Datei bundle.js zu generieren:

webpack
 
Hash: 4fdefac099a5f36ff74b
Version: webpack 1.12.13
Time: 576ms
    Asset     Size  Chunks             Chunk Names
bundle.js  11.8 kB       0  [emitted]  main
   [0] ./runoob1.js 65 bytes {0} [built]
   [5] ./runoob2.js 46 bytes {0} [built]
    + 4 hidden modules
Nach dem Login kopieren

webpack-Befehl Nach der Ausführung wird standardmäßig die Datei webpack.config.js im aktuellen Verzeichnis geladen.


Plug-in

Plug-in wird in der Plugins-Option der Webpack-Konfigurationsinformationen angegeben und wird zum Abschließen einiger Arbeiten verwendet dass der Lader nicht abschließen kann.

Webpack enthält einige Plug-Ins, und Sie können einige Plug-Ins über cnpm installieren.

使用内置插件需要通过以下命令来安装:

cnpm install webpack --save-dev
Nach dem Login kopieren

比如我们可以安装内置的 BannerPlugin 插件,用于在文件头部输出一些注释信息。

修改 webpack.config.js,代码如下:

var webpack=require(&#39;webpack&#39;);
 
module.exports = {
    entry: "./runoob1.js",
    output: {
        path: __dirname,
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style-loader!css-loader" }
        ]
    },
    plugins:[
    new webpack.BannerPlugin(&#39;菜鸟教程 webpack 实例&#39;)
    ]
};
Nach dem Login kopieren

然后运行:

webpack
Nach dem Login kopieren

打开 bundle.js,可以看到文件头部出现了我们指定的注释信息。


开发环境

当项目逐渐变大,webpack 的编译时间会变长,可以通过参数让编译的输出内容带有进度和颜色。

webpack --progress --colors
Nach dem Login kopieren

如果不想每次修改模块后都重新编译,那么可以启动监听模式。开启监听模式后,没有变化的模块会在编译后缓存到内存中,而不会每次都被重新编译,所以监听模式的整体速度是很快的。

webpack --progress --colors --watch
Nach dem Login kopieren

当然,我们可以使用 webpack-dev-server 开发服务,这样我们就能通过 localhost:8080 启动一个 express 静态资源 web 服务器,并且会以监听模式自动运行 webpack,在浏览器打开 http://localhost:8080/ 或 http://localhost:8080/webpack-dev-server/ 可以浏览项目中的页面和编译后的资源输出,并且通过一个 socket.io 服务实时监听它们的变化并自动刷新页面。

# 安装
cnpm install webpack-dev-server -g
 
# 运行
webpack-dev-server --progress --colors
Nach dem Login kopieren

在浏览器打开 http://localhost:8080/ 输出结果如下:

Webpack-Erste-Schritte-Tutorial

相关教程推荐:webpack 中文文档

Das obige ist der detaillierte Inhalt vonWebpack-Erste-Schritte-Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:runoob.com
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