Webpack von der Initialisierung bis zur Verwendung
Dieses Mal werde ich Ihnen das Webpack von der Initialisierung bis zur Verwendung vorstellen. Welche Vorsichtsmaßnahmen sind für das Webpack von der Initialisierung bis zur Verwendung zu beachten? Das Folgende ist ein praktischer Fall. Werfen wir einen Blick darauf.
Erstellen Sie nach der Installation des Knotens ein neues Verzeichnis, z. B. HTML5. Wechseln Sie in cmd zum aktuellen Ordner.
npm init -y
Dieser Befehl erstellt ein Standardpaket.json. Es enthält einige Konfigurationsparameter des Projekts, über die die Erstinstallation durchgeführt werden kann. Detaillierte Parameter: https://docs.npmjs.com/files/package.json.
Wenn der y-Parameter nicht erforderlich ist, werden im Befehlsfeld verschiedene Parameter festgelegt, aber ich denke, dass dies nicht erforderlich ist.
2. Webpack installieren
npm install webpack --save-dev
Webpack im aktuellen Verzeichnis installieren. Obwohl npm install webpack -g Webpack global installieren kann, ist es fehleranfällig, dass einige Module nicht gefunden werden können. Daher ist es am besten, es im aktuellen Verzeichnis zu installieren.
3. Verzeichnisstruktur
Webpack ist ein Modul, das verschiedene Ressourcen lädt und verpackt. Erstellen Sie also zunächst eine Verzeichnisstruktur wie folgt:
Die App enthält in der Entwicklung befindliche js-Dateien, eine Komponente und einen Eintrag. Build wird zum Speichern gepackter Dateien verwendet. webpack.config.js Wie der Name schon sagt, wird es zum Konfigurieren von Webpack verwendet. Unnötig zu sagen package.json.
component.js
export default function () { var element = document.createElement('h1'); element.innerHTML = 'Hello world'; return element; }
component.js gibt ein h1-Element aus. Der Exportstandard ist die ES6-Syntax, was bedeutet, dass die Standardausgabe angegeben wird. Beim Importieren müssen keine geschweiften Klammern angegeben werden. Die Funktion von
index.js
import component from './component'; document.body.appendChild(component());
index.js besteht darin, auf das Komponentenmodul zu verweisen und ein h1-Element auf der Seite auszugeben. Um dies zu vervollständigen, ist jedoch ein Plug-In erforderlich, da wir derzeit keine index.html-Datei haben.
npm install html-webpack-plugin --save-dev
html-webpack-plugin wird verwendet, um HTML zu generieren und es im Entwicklungsverzeichnis zu installieren.
4. Legen Sie die Webpack-Konfigurationsdatei fest
Wir müssen Webpack über die Datei webpack.config.js mitteilen, wie es starten soll. Eine Konfigurationsdatei erfordert mindestens einen Eintrag und eine Ausgabe. Mehrere Seiten erfordern mehrere Eingänge. Knotenpfadmodul
const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const PATHS = { app: path.join(__dirname, 'app'), build: path.join(__dirname, 'build'), }; module.exports = { entry: { app: PATHS.app, }, output: { path: PATHS.build, filename: '[name].js', }, plugins: [ new HtmlWebpackPlugin({ title: 'Webpack demo', }), ], };
Ich war etwas verwirrt, als ich diese Konfigurationsdatei zum ersten Mal sah. Es handelt sich hauptsächlich um Exporte, die in drei Teile unterteilt sind: einen Eingang, einen Ausgang und ein Plug-In. Der Eintrag verweist auf den App-Ordner. Standardmäßig wird die Datei mit „index.js“ als Eintrag verwendet. Die Ausgabe gibt die Build-Adresse und einen Dateinamen an; [Name] stellt hier einen Platzhalter dar, der als vom Webpack bereitgestellte Variable betrachtet werden kann. Wir werden uns das später ansehen. Das HtmlWebpackPlugin generiert eine Standard-HTML-Datei.
5. Verpackung
Mit den oben genannten Vorbereitungen können Sie Webpack direkt zum Ausführen aufrufen.
Diese Ausgabe umfasst Hash (jedes Mal unterschiedlicher Verpackungswert), Version und Zeit (zeitaufwändig). und Ausgabedateiinformationen. Öffnen Sie zu diesem Zeitpunkt den Build-Ordner und suchen Sie nach einer zusätzlichen Datei app.js und index.html. Doppelklicken Sie auf index.html:
Sie können auch package.json ändern
{ "name": "Html5", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "build": "webpack" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "html-webpack-plugin": "^2.28.0", "webpack": "^2.2.1" } }
Build angeben. Das Ausführen von npm run build in cmd führt zum gleichen Ergebnis
helloword erscheint. Schauen Sie sich den Inhalt der Datei
index.html noch einmal an:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Webpack demo</title> </head> <body> <script type="text/javascript" src="app.js"></script></body> </html>
verweist standardmäßig auf app.js.
6. Analyse
app.js
/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.l = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 1); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = function () { var element = document.createElement('h1'); element.innerHTML = 'Hello world'; return element; }; /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__component__ = __webpack_require__(0); document.body.appendChild(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__component__["a" /* default */])()); /***/ }) /******/ ]);
Und app.js hat mehr Inhalt. Das Ganze ist eine anonyme Funktion.
(function(module) { })([(function (){}), function() {}])
Die beiden js-Dateien im App-Ordner werden hier zu den beiden Modulen. Die Funktion beginnt bei __webpack_require__
return __webpack_require__(__webpack_require__.s = 1);
Hier ist angegeben, dass sie ab Modul 1 ausgeführt werden soll (der Rückgabewert der Zuweisungsanweisung ist ihr Wert). Der Aufruf von Modul 1 wird über den Satz __webpack_require__ ausgeführt.
Code kopieren Der Code lautet wie folgt:
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
Pass Die Hauptfunktion des Aufrufmoduls besteht darin, Parameter zu übergeben.
(function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__component__ = __webpack_require__(0); document.body.appendChild(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__component__["a" /* default */])()); /***/ })
__webpack_require__ Jedes Mal, wenn ein Modul geladen wird, wird es zunächst im Modulcache gesucht. Wenn nicht, wird ein neues Modulobjekt erstellt:
var module = installedModules[moduleId] = { i: moduleId, l: false, exports: {} };
模块1中加载了模块0,
var __WEBPACK_IMPORTED_MODULE_0__component__ = __webpack_require__(0);
__WEBPACK_IMPORTED_MODULE_0__component__ 返回的是这个模块0的exports部分。而之前Component.js的默认方法定义成了
__webpack_exports__["a"] = function () { var element = document.createElement('h1'); element.innerHTML = 'Hello world'; return element; }
所以再模块1的定义通过"a“来获取这个方法:
复制代码 代码如下:
document.body.appendChild(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__component__["a" /* default */])());
这样就完整了,但这里使用了__webpack_require__.i 将原值返回。
/******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; };
不太明白这个i函数有什么作用。这个注释也不太明白,路过的大神希望可以指点下。
小结:
webpack通过一个立即执行的匿名函数将各个开发模块作为参数初始化,每个js文件(module)对应一个编号,每个js中export的方法或者对象有各自指定的关键字。通过这种方式将所有的模块和接口方法管理起来。然后先加载最后的一个模块(应该是引用别的模块的模块),这样进而去触发别的模块的加载,使整个js运行起来。到这基本了解了webpack的功能和部分原理,但略显复杂,且没有感受到有多大的好处。继续探索。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt vonWebpack von der Initialisierung bis zur Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Diffusion kann nicht nur besser imitieren, sondern auch „erschaffen“. Das Diffusionsmodell (DiffusionModel) ist ein Bilderzeugungsmodell. Im Vergleich zu bekannten Algorithmen wie GAN und VAE im Bereich der KI verfolgt das Diffusionsmodell einen anderen Ansatz. Seine Hauptidee besteht darin, dem Bild zunächst Rauschen hinzuzufügen und es dann schrittweise zu entrauschen. Das Entrauschen und Wiederherstellen des Originalbilds ist der Kernbestandteil des Algorithmus. Der endgültige Algorithmus ist in der Lage, aus einem zufälligen verrauschten Bild ein Bild zu erzeugen. In den letzten Jahren hat das phänomenale Wachstum der generativen KI viele spannende Anwendungen in der Text-zu-Bild-Generierung, Videogenerierung und mehr ermöglicht. Das Grundprinzip dieser generativen Werkzeuge ist das Konzept der Diffusion, ein spezieller Sampling-Mechanismus, der die Einschränkungen bisheriger Methoden überwindet.

Kimi: In nur einem Satz, in nur zehn Sekunden ist ein PPT fertig. PPT ist so nervig! Um ein Meeting abzuhalten, benötigen Sie einen PPT; um einen wöchentlichen Bericht zu schreiben, müssen Sie einen PPT vorlegen, auch wenn Sie jemanden des Betrugs beschuldigen PPT. Das College ähnelt eher dem Studium eines PPT-Hauptfachs. Man schaut sich PPT im Unterricht an und macht PPT nach dem Unterricht. Als Dennis Austin vor 37 Jahren PPT erfand, hatte er vielleicht nicht damit gerechnet, dass PPT eines Tages so weit verbreitet sein würde. Wenn wir über unsere harte Erfahrung bei der Erstellung von PPT sprechen, treiben uns Tränen in die Augen. „Es dauerte drei Monate, ein PPT mit mehr als 20 Seiten zu erstellen, und ich habe es Dutzende Male überarbeitet. Als ich das PPT sah, musste ich mich übergeben.“ war PPT.“ Wenn Sie ein spontanes Meeting haben, sollten Sie es tun

Am frühen Morgen des 20. Juni (Pekinger Zeit) gab CVPR2024, die wichtigste internationale Computer-Vision-Konferenz in Seattle, offiziell die besten Beiträge und andere Auszeichnungen bekannt. In diesem Jahr wurden insgesamt 10 Arbeiten ausgezeichnet, darunter zwei beste Arbeiten und zwei beste studentische Arbeiten. Darüber hinaus gab es zwei Nominierungen für die beste Arbeit und vier Nominierungen für die beste studentische Arbeit. Die Top-Konferenz im Bereich Computer Vision (CV) ist die CVPR, die jedes Jahr zahlreiche Forschungseinrichtungen und Universitäten anzieht. Laut Statistik wurden in diesem Jahr insgesamt 11.532 Arbeiten eingereicht, von denen 2.719 angenommen wurden, was einer Annahmequote von 23,6 % entspricht. Laut der statistischen Analyse der CVPR2024-Daten des Georgia Institute of Technology befassen sich die meisten Arbeiten aus Sicht der Forschungsthemen mit der Bild- und Videosynthese und -generierung (Imageandvideosyn

Wir wissen, dass LLM auf großen Computerclustern unter Verwendung umfangreicher Daten trainiert wird. Auf dieser Website wurden viele Methoden und Technologien vorgestellt, die den LLM-Trainingsprozess unterstützen und verbessern. Was wir heute teilen möchten, ist ein Artikel, der tief in die zugrunde liegende Technologie eintaucht und vorstellt, wie man einen Haufen „Bare-Metals“ ohne Betriebssystem in einen Computercluster für das LLM-Training verwandelt. Dieser Artikel stammt von Imbue, einem KI-Startup, das allgemeine Intelligenz durch das Verständnis der Denkweise von Maschinen erreichen möchte. Natürlich ist es kein einfacher Prozess, einen Haufen „Bare Metal“ ohne Betriebssystem in einen Computercluster für das Training von LLM zu verwandeln, aber Imbue hat schließlich erfolgreich ein LLM mit 70 Milliarden Parametern trainiert der Prozess akkumuliert

Schnellstart mit PyCharm Community Edition: Detailliertes Installations-Tutorial, vollständige Analyse Einführung: PyCharm ist eine leistungsstarke integrierte Python-Entwicklungsumgebung (IDE), die einen umfassenden Satz an Tools bereitstellt, mit denen Entwickler Python-Code effizienter schreiben können. In diesem Artikel wird die Installation der PyCharm Community Edition im Detail vorgestellt und spezifische Codebeispiele bereitgestellt, um Anfängern den schnellen Einstieg zu erleichtern. Schritt 1: PyCharm Community Edition herunterladen und installieren Um PyCharm verwenden zu können, müssen Sie es zunächst von der offiziellen Website herunterladen

Herausgeber des Machine Power Report: Yang Wen Die Welle der künstlichen Intelligenz, repräsentiert durch große Modelle und AIGC, hat unsere Lebens- und Arbeitsweise still und leise verändert, aber die meisten Menschen wissen immer noch nicht, wie sie sie nutzen sollen. Aus diesem Grund haben wir die Kolumne „KI im Einsatz“ ins Leben gerufen, um detailliert vorzustellen, wie KI durch intuitive, interessante und prägnante Anwendungsfälle für künstliche Intelligenz genutzt werden kann, und um das Denken aller anzuregen. Wir heißen Leser auch willkommen, innovative, praktische Anwendungsfälle einzureichen. Videolink: https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ Vor kurzem wurde der Lebens-Vlog eines allein lebenden Mädchens auf Xiaohongshu populär. Eine Animation im Illustrationsstil, gepaart mit ein paar heilenden Worten, kann in nur wenigen Tagen leicht erlernt werden.

Als weit verbreitete Programmiersprache ist die C-Sprache eine der grundlegenden Sprachen, die für diejenigen erlernt werden müssen, die sich mit Computerprogrammierung befassen möchten. Für Anfänger kann das Erlernen einer neuen Programmiersprache jedoch etwas schwierig sein, insbesondere aufgrund des Mangels an entsprechenden Lernwerkzeugen und Lehrmaterialien. In diesem Artikel werde ich fünf Programmiersoftware vorstellen, die Anfängern den Einstieg in die C-Sprache erleichtert und Ihnen einen schnellen Einstieg ermöglicht. Die erste Programmiersoftware war Code::Blocks. Code::Blocks ist eine kostenlose integrierte Open-Source-Entwicklungsumgebung (IDE) für

Titel: Ein Muss für technische Anfänger: Schwierigkeitsanalyse der C-Sprache und Python, die spezifische Codebeispiele erfordert. Im heutigen digitalen Zeitalter ist Programmiertechnologie zu einer immer wichtigeren Fähigkeit geworden. Ob Sie in Bereichen wie Softwareentwicklung, Datenanalyse, künstliche Intelligenz arbeiten oder einfach nur aus Interesse Programmieren lernen möchten, die Wahl einer geeigneten Programmiersprache ist der erste Schritt. Unter vielen Programmiersprachen sind C-Sprache und Python zwei weit verbreitete Programmiersprachen, jede mit ihren eigenen Merkmalen. In diesem Artikel werden die Schwierigkeitsgrade der C-Sprache und von Python analysiert
