Heim Web-Frontend js-Tutorial So verwenden Sie das modulare Verwaltungs- und Verpackungstool Webpack

So verwenden Sie das modulare Verwaltungs- und Verpackungstool Webpack

Jun 07, 2018 am 09:58 AM
webpack 打包 模块化

Dieses Mal zeige ich Ihnen, wie Sie die modularen Verwaltungs- und Verpackungstools von Webpack verwenden und welche Vorsichtsmaßnahmen für die Verwendung der modularen Verwaltungs- und Verpackungstools von Webpack gelten. Das Folgende ist ein praktischer Fall, werfen wir einen Blick darauf.

Einführung in Webpack

Webpack ist derzeit das beliebteste Front-End-Tool für die modulare Verwaltung und Verpackung von Ressourcen. Es kann viele lose Module in Front-End-Ressourcen packen, die gemäß Abhängigkeiten und Regeln mit der Bereitstellung in der Produktionsumgebung konsistent sind. Sie können den Code von bei Bedarf geladenen Modulen auch trennen und asynchron laden, bis sie tatsächlich

benötigt werden. Durch die Loader-Konvertierung kann jede Form von Ressource als Modul betrachtet werden, z. B. CommonJs-Module, AMD-Module, ES6-Module, CSS, Bilder, JSON, Coffeescript, LESS usw.

Entwicklung des Modulsystems<script> Tag</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;script src=&quot;module1.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;module2.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;libraryA.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;module3.js&quot;&gt;&lt;/script&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p style="text-align: left;">Dies ist die originellste Methode zum Laden von JavaScript-Dateien. Wenn jede Datei als Modul betrachtet wird, werden ihre Schnittstellen normalerweise im globalen Kontext angezeigt Bereich, dh im Fensterobjekt definiert, befinden sich die Schnittstellenaufrufe verschiedener Module im selben Bereich. Einige komplexe Frameworks verwenden das Konzept des Namespace, um die Schnittstellen dieser Module zu organisieren. </p> <p style="text-align: left;">Diese ursprüngliche Lademethode weist einige offensichtliche Nachteile auf: </p> <p style="text-align: left;"></p> <ol class=" list-paddingleft-2">Es ist leicht, Variablenkonflikte im globalen Bereich zu verursachen<li><p style="text-align: left;"></p></li> Dateien können nur in der Reihenfolge geladen werden, in der <script> In großen Projekten sind verschiedene Ressourcen schwer zu verwalten und langfristig angesammelte Probleme führen zu einer chaotischen Codebasis<li><p style="text-align: left;"><li><p style="text-align: left;">CommonJS-Spezifikation<li><p style="text-align: left;">CommonJS ist ein Projekt, das mit dem Ziel ins Leben gerufen wurde, ein JavaScript-Ökosystem außerhalb von Browserumgebungen aufzubauen, beispielsweise in Server- und Desktop-Umgebungen. Die CommonJS-Spezifikation ist eine Modulform, die zur Lösung des Umfangsproblems von JavaScript definiert ist und es jedem Modul ermöglicht, in seinem eigenen Namensraum auszuführen. Der Hauptinhalt dieser Spezifikation besteht darin, dass Module externe Variablen oder Schnittstellen über module.exports exportieren und die Ausgabe anderer Module über require() in den aktuellen Modulbereich importieren müssen. </script>

Ein intuitives Beispiel

// moduleA.js
module.exports = function( value ){
  return value * 2;
}
// moduleB.js
var multiplyBy2 = require('./moduleA');
var result = multiplyBy2(4);
Nach dem Login kopieren
AMD-Spezifikation

AMD (Asynchronous Module Definition) ist für Browserumgebungen konzipiert, weil die Das CommonJS-Modulsystem wird synchron geladen und die aktuelle Browserumgebung ist nicht bereit, Module synchron zu laden.

Das Modul wird im Abschluss durch die Definitionsfunktion im folgenden Format definiert:

define(id?: String, dependencies?: String[], factory: Function|Object);
Nach dem Login kopieren

id ist der Name des Moduls, der ein optionaler Parameter ist. factory ist der letzte Parameter, der die spezifische Implementierung des Moduls umschließt, bei dem es sich um eine Funktion oder ein Objekt handelt. Wenn es sich um eine Funktion handelt, ist ihr Rückgabewert die Ausgabeschnittstelle oder der Wert des Moduls. Einige Anwendungsfälle

Definieren Sie ein Modul mit dem Namen myModule, das vom jQuery-Modul abhängt:

define('myModule', ['jquery'], function($) {
  // $ 是 jquery 模块的输出
  $('body').text('hello world');
}); // 使用 require(['myModule'], function(myModule) {});
Nach dem Login kopieren

Hinweis: Im Webpack hat der Modulname in Require nur einen lokalen Gültigkeitsbereich . Der Modulname in js hat einen globalen Gültigkeitsbereich und kann global referenziert werden.

Definieren Sie ein anonymes Modul ohne ID-Wert, das normalerweise als Startfunktion der Anwendung verwendet wird:

define(['jquery'], function($) {
  $('body').text('hello world');
});
Nach dem Login kopieren

AMD verwendet auch die require()-Anweisung zum Laden von Modulen, erfordert jedoch im Gegensatz zu CommonJS zwei Parameter

Der erste Parameter [Modul] ist ein Array, dessen Mitglieder die zu ladenden Module sind; der zweite Parameter Callback ist die Callback-Funktion nach erfolgreichem Laden. Wenn der vorherige Code in AMD-Form umgeschrieben wird, sieht er folgendermaßen aus:

math.add() und das Laden des Mathematikmoduls sind nicht synchronisiert und der Browser friert nicht ein. Daher ist AMD offensichtlich besser für Browserumgebungen geeignet

Derzeit gibt es zwei Haupt-Javascript-Bibliotheken, die die AMD-Spezifikation implementieren: require.js und curl.js

 require(['math'], function (math) {
    math.add(2, 3);
  });
Nach dem Login kopieren

Was? Ist Webpack

Webpack ist ein Modul-Bundler. 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.

Funktionen von Webpack

Code-Splitting

Loader

  • 智能解析

  • 插件系统

  • 快速运行

  • webpack基本使用

    创建项目根目录

    初始化

    npm init 或 npm init -y
    Nach dem Login kopieren

    全局安装

    npm install webpack -g
    Nach dem Login kopieren

    局部安装,在项目目录下安装

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

    --save: 将安装的包的信息保存在package中

    --dev:开发版本,只是项目构建的时候使用,项目构建完成后并不依赖的文件

    如果使用web开发工具,单独安装

    npm install webpack-dev-server --save-dev
    Nach dem Login kopieren

    基本使用

    首先创建一个静态页面 index.html 和一个 JS 入口文件 entry.js:

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

    创建entry.js

    // entry.js : 在页面中打印出一句话
    document.write('It works.')
    Nach dem Login kopieren

    然后编译 entry.js并打包到 bundle.js文件中

    // 使用npm命令 
    webpack entry.js bundle.js
    Nach dem Login kopieren

    使用模块

    1.创建模块module.js,在内部导出内容

    module.exports = 'It works from module.js'
    Nach dem Login kopieren

    2.在entry.js中使用自定义的模块

    //entry.js
    document.write('It works.')
    document.write(require('./module.js')) // 添加模块
    Nach dem Login kopieren

    加载css模块

    1.安装css-loader

    npm install css-loader style-loader --save-dev
    Nach dem Login kopieren

    2.创建css文件

    //style.css
    body { background: yellow; }
    Nach dem Login kopieren

    3.修改 entry.js:

    require("!style-loader!css-loader!./style.css") // 载入 style.css
    document.write('It works.')
    document.write(require('./module.js'))
    Nach dem Login kopieren

    创建配置文件webpack.config.js

    1.创建文件

    var webpack = require('webpack')
    module.exports = {
     entry: './entry.js',
     output: {
      path: __dirname,
      filename: 'bundle.js'
     },
     module: {
      loaders: [
        //同时简化 entry.js 中的 style.css 加载方式:require('./style.css')
       {test: /\.css$/, loader: 'style-loader!css-loader'}
      ]
     }
    }
    Nach dem Login kopieren

    2.修改 entry.js 中的 style.css 加载方式:require('./style.css')

    3.运行webpack

    在命令行页面直接输入webpack

    插件使用

    1.插件安装

    //添加注释的插件
    npm install --save-devbannerplugin
    Nach dem Login kopieren

    2.配置文件的书写

    var webpack = require('webpack')
    module.exports = {
      entry: './entry.js',
      output: {
        path: __dirname,
        filename: 'bundle.js'
      },
      module: {
        loaders: [
          //同时简化 entry.js 中的 style.css 加载方式:require('./style.css')
          {
            test: /\.css$/,
            loader: 'style-loader!css-loader'
          }
        ],
        plugins: [
          //添加注释的插件
          new webpack.BannerPlugin('This file is created by zhaoda')
        ]
      }
    }
    Nach dem Login kopieren

    3.运行webpack

    // 可以在bundle.js的头部看到注释信息
    /*! This file is created by zhaoda */
    Nach dem Login kopieren

    开发环境

    webpack

    --progress : 显示编译的进度

    --colors : 带颜色显示,美化输出

    --watch : 开启监视器,不用每次变化后都手动编译

    12.4.7.1. webpack-dev-server

    开启服务,以监听模式自动运行

    1.安装包

    npm install webpack-dev-server -g --save-dev
    Nach dem Login kopieren

    2.启动服务

    实时监控页面并自动刷新

    webpack-dev-server --progress --colors
    Nach dem Login kopieren

    自动编译

    1.安装插件

    npm install --save-dev html-webpack-plugin
    Nach dem Login kopieren

    2.在配置文件中导入包

    var htmlWebpackPlugin = require('html-webpack-plugin')
    Nach dem Login kopieren

    3.在配置文件中使用插件

    plugins: [
        //添加注释的插件
        new webpack.BannerPlugin('This file is created by zhaoda'),
        //自动编译
        new htmlWebpackPlugin({
          title: "index",
          filename: 'index.html', //在内存中生成的网页的名称
          template: './index.html' //生成网页名称的依据
        })
      ]
    Nach dem Login kopieren

    4.运行项目

    webpack--save-dev
    Nach dem Login kopieren

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    调用模式与this绑定

    在实战项目中怎样使用jquery layur弹出层

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie das modulare Verwaltungs- und Verpackungstool Webpack. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    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

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Teilen Sie eine einfache Möglichkeit zum Paketieren von PyCharm-Projekten Teilen Sie eine einfache Möglichkeit zum Paketieren von PyCharm-Projekten Dec 30, 2023 am 09:34 AM

    Teilen Sie die einfache und leicht verständliche PyCharm-Projektpaketierungsmethode. Mit der Popularität von Python verwenden immer mehr Entwickler PyCharm als Hauptwerkzeug für die Python-Entwicklung. PyCharm ist eine leistungsstarke integrierte Entwicklungsumgebung, die viele praktische Funktionen bietet, die uns helfen, die Entwicklungseffizienz zu verbessern. Eine der wichtigen Funktionen ist die Projektverpackung. In diesem Artikel wird auf einfache und leicht verständliche Weise vorgestellt, wie Projekte in PyCharm verpackt werden, und es werden spezifische Codebeispiele bereitgestellt. Warum Paketprojekte? Entwickelt in Python

    VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack Jun 15, 2023 pm 06:17 PM

    Vue ist ein hervorragendes JavaScript-Framework, das uns dabei helfen kann, schnell interaktive und effiziente Webanwendungen zu erstellen. Vue3 ist die neueste Version von Vue, die viele neue Features und Funktionen einführt. Webpack ist derzeit einer der beliebtesten JavaScript-Modulpaketierer und Build-Tools, der uns bei der Verwaltung verschiedener Ressourcen in unseren Projekten helfen kann. In diesem Artikel wird erläutert, wie Sie Webpack zum Verpacken und Erstellen von Vue3-Anwendungen verwenden. 1. Webpack installieren

    So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge Nov 22, 2023 pm 05:18 PM

    So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge Im Softwareentwicklungsprozess ist das Schreiben von Code mit guter Wartbarkeit von entscheidender Bedeutung. Wartbarkeit bedeutet, dass Code leicht verstanden, geändert und erweitert werden kann, ohne dass es zu unerwarteten Problemen oder zusätzlichem Aufwand kommt. Für Java-Entwickler ist die Optimierung der Wartbarkeit von Code ein wichtiges Thema. In diesem Artikel werden einige Erfahrungen und Vorschläge geteilt, um Java-Entwicklern dabei zu helfen, die Wartbarkeit ihres Codes zu verbessern. Befolgen Sie standardisierte Benennungsregeln. Standardmäßige Benennungsregeln können die Lesbarkeit des Codes verbessern.

    Wie kann der Codekomplexitätsfehler im Python-Code behoben werden? Wie kann der Codekomplexitätsfehler im Python-Code behoben werden? Jun 24, 2023 pm 05:43 PM

    Python ist eine einfache, leicht zu erlernende und effiziente Programmiersprache. Wenn wir jedoch Python-Code schreiben, können Probleme mit übermäßiger Codekomplexität auftreten. Wenn diese Probleme nicht gelöst werden, wird es schwierig, den Code zu warten, fehleranfällig zu machen und die Lesbarkeit und Skalierbarkeit des Codes zu verringern. In diesem Artikel besprechen wir daher, wie man Codekomplexitätsfehler in Python-Code beheben kann. Verständnis der Codekomplexität Die Codekomplexität ist ein Maß für die Art des Codes, der schwer zu verstehen und zu warten ist. In Python gibt es einige Indikatoren, die verwendet werden können

    So verwenden Sie reguläre Python-Ausdrücke zum Packen und Verteilen von Code So verwenden Sie reguläre Python-Ausdrücke zum Packen und Verteilen von Code Jun 23, 2023 am 09:31 AM

    Da die Programmiersprache Python immer beliebter wird, beginnen immer mehr Entwickler, Code in Python zu schreiben. Bei der tatsächlichen Verwendung müssen wir diese Codes jedoch häufig verpacken und zur Verwendung an andere weitergeben. In diesem Artikel wird erläutert, wie Sie reguläre Python-Ausdrücke zum Packen und Verteilen von Code verwenden. 1. Python-Code-Paketierung In Python können wir Tools wie setuptools und distutils verwenden, um unseren Code zu paketieren. Diese Tools können Python-Dateien und -Module konvertieren

    Wie kann der Fehler der schlechten Wartbarkeit von Python-Code behoben werden? Wie kann der Fehler der schlechten Wartbarkeit von Python-Code behoben werden? Jun 25, 2023 am 11:58 AM

    Python wird als höhere Programmiersprache häufig in der Softwareentwicklung verwendet. Obwohl Python viele Vorteile bietet, besteht ein Problem, mit dem viele Python-Programmierer häufig konfrontiert sind, darin, dass der Code weniger wartbar ist. Die Wartbarkeit von Python-Code umfasst die Lesbarkeit, Skalierbarkeit und Wiederverwendbarkeit des Codes. In diesem Artikel konzentrieren wir uns darauf, wie das Problem der schlechten Wartbarkeit von Python-Code gelöst werden kann. 1. Lesbarkeit des Codes Die Lesbarkeit des Codes bezieht sich auf die Lesbarkeit des Codes, die den Kern der Wartbarkeit des Codes darstellt.

    Detaillierte Erläuterung der VSCode-Funktionen: Wie hilft es Ihnen, die Arbeitseffizienz zu verbessern? Detaillierte Erläuterung der VSCode-Funktionen: Wie hilft es Ihnen, die Arbeitseffizienz zu verbessern? Mar 25, 2024 pm 05:27 PM

    Detaillierte Erläuterung der VSCode-Funktionen: Wie hilft es Ihnen, die Arbeitseffizienz zu verbessern? Mit der kontinuierlichen Weiterentwicklung der Softwareentwicklungsbranche ist das Streben der Entwickler nach Arbeitseffizienz und Codequalität zu wichtigen Zielen ihrer Arbeit geworden. In diesem Prozess wird die Wahl des Code-Editors zu einer Schlüsselentscheidung. Unter vielen Editoren ist Visual Studio Code (kurz VSCode) bei den meisten Entwicklern aufgrund seiner leistungsstarken Funktionen und flexiblen Skalierbarkeit beliebt. In diesem Artikel werden einige Funktionen von VSCode ausführlich vorgestellt und erläutert

    Unabhängigkeitserklärung für Python-Anwendungen: PyInstallers Weg zur Freiheit Unabhängigkeitserklärung für Python-Anwendungen: PyInstallers Weg zur Freiheit Feb 20, 2024 am 09:27 AM

    PyInstaller: Unabhängigkeit von Python-Anwendungen PyInstaller ist ein Open-Source-Python-Paketierungstool, das Python-Anwendungen und ihre Abhängigkeiten in eine unabhängige ausführbare Datei packt. Dieser Prozess beseitigt die Abhängigkeit vom Python-Interpreter und ermöglicht gleichzeitig die Ausführung von Anwendungen auf einer Vielzahl von Plattformen, einschließlich Windows, MacOS und Linux. Verpackungsprozess Der Verpackungsprozess von PyInstaller ist relativ einfach und umfasst die folgenden Schritte: pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile Option erstellt eine einzelne

    See all articles