Heim Web-Frontend js-Tutorial Webpack-Entwicklungs- und Produktionsumgebung

Webpack-Entwicklungs- und Produktionsumgebung

Jun 11, 2018 am 09:53 AM
webpack

Dieses Mal werde ich Ihnen die Entwicklungs- und Produktionsumgebung von Webpack vorstellen. Was sind die Vorsichtsmaßnahmen für die Verwendung von Webpack in der Entwicklungs- und Produktionsumgebung? Das Folgende ist ein praktischer Fall.

Die Funktion des Hot Module Replacement (HMR) besteht darin, erforderliche Module zu ersetzen, hinzuzufügen und zu löschen, ohne die Seite zu aktualisieren, während die Anwendung ausgeführt wird. HMR ist für Anwendungen nützlich, die aus einem einzelnen Zustandsbaum bestehen. Da die Komponenten dieser Anwendungen „dumm“ (im Gegensatz zu „intelligent“) sind, kann der Status der Komponente nach Änderungen am Code der Komponente immer noch korrekt den neuesten Status der Anwendung widerspiegeln.

webpack-dev-server verfügt über ein integriertes „Live-Reload“ und aktualisiert die Seite automatisch.

Das Dateiverzeichnis lautet wie folgt:

  1. app

    1. a.js

    2. component.js

    3. index.js

  2. node_modules

  3. package.json

  4. webpack.config.js

component.js importiert a.js. index.js importiert Component.js. Durch Ändern einer beliebigen Datei kann die Hot-Update-Funktion erreicht werden.

Das Wichtigste ist, dass es in index.js einen solchen Code gibt: (erforderlich, um das Hot-Update abzuschließen)

if(module.hot){
  module.hot.accept(moduleId, callback);
}
Nach dem Login kopieren

Das Folgende ist die package.json-Konfiguration:

{
 "name": "webpack-hmr",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
  "start": "nodemon --watch webpack.config.js --exec \"webpack-dev-server --env development\"",
  "build": "webpack --env production"
 },
 "keywords": [],
 "author": "",
 "license": "ISC",
 "devDependencies": {
  "html-webpack-plugin": "^2.28.0",
  "nodemon": "^1.11.0",
  "webpack": "^2.2.1",
  "webpack-dev-server": "^2.4.1"
 }
}
Nach dem Login kopieren

Wie man anhand der Abhängigkeiten sehen kann, ist dies wirklich die einfachste Konfiguration. Unter anderem wird nodemon verwendet, um den Status der Datei webpack.config.js zu überwachen. Solange eine Änderung vorliegt, wird der Befehl erneut ausgeführt.

Bezüglich „html-webpack-plugin“ kann es hier weggelassen werden. Informationen zur spezifischen Konfiguration finden Sie unter: https://www.npmjs.com/package/html-webpack-plugin.

Hier werden zwei Befehle definiert, einer ist „Start“, der in der Entwicklungsumgebung verwendet wird, der andere ist „Build“, der in der Produktionsumgebung verwendet wird. --watch wird verwendet, um eine oder mehrere Dateien zu überwachen, und --exec wird von nodemon verwendet, um andere Befehle auszuführen. Informationen zur spezifischen Konfiguration finden Sie unter: https://c9.io/remy/nodemon.

Der nächste Schritt ist webpack.config.js. Da in den Skripten von package.json zwei Befehle definiert sind, müssen wir noch zwei Situationen (Entwicklung und Produktion) in der Konfigurationsdatei implementieren die Konfiguration.

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
const PATHS = {
 app: path.join(__dirname, 'app'),
 build: path.join(__dirname, 'build'),
};
const commonConfig={
 entry: {
  app: PATHS.app + '/index.js',
 },
 output: {
  path: PATHS.build,
  filename: '[name].js',
 },
 watch: true,
 plugins: [
  new HtmlWebpackPlugin({
   title: 'Webpack demo',
  }),
 ],
}
function developmentConfig(){
 const config ={
  devServer:{
   historyApiFallback:true, //404s fallback to ./index.html
   // hotOnly:true, 使用hotOnly和hot都可以
   hot: true,
   stats:'errors-only', //只在发生错误时输出
   // host:process.env.Host, 这里是undefined,参考的别人文章有这个
   // port:process.env.PORT, 这里是undefined,参考的别人文章有这个
   overlay:{ //当有编译错误或者警告的时候显示一个全屏overlay
    errors:true,
    warnings:true,
   }
  },
   plugins: [
   new webpack.HotModuleReplacementPlugin(),
   new webpack.NamedModulesPlugin(), // 更新组件时在控制台输出组件的路径而不是数字ID,用在开发模式
   // new webpack.HashedModuleIdsPlugin(), // 用在生产模式
  ],
 };
 return Object.assign( 
  {},
  commonConfig,
  config,
  {
   plugins: commonConfig.plugins.concat(config.plugins),
  }
 );
}
module.exports = function(env){
 console.log("env",env);
 if(env=='development'){
  return developmentConfig();
 }
 return commonConfig;
};
Nach dem Login kopieren

In Bezug auf Object.assign ist der erste Parameter das Zielobjekt. Wenn die Eigenschaften im Zielobjekt denselben Schlüssel haben, werden die Eigenschaften durch die Eigenschaften in der Quelle überschrieben. Eigenschaften späterer Quellen überschreiben ebenfalls frühere Eigenschaften. Flache Zuweisung, verwenden Sie = zum Kopieren von Objekten, dh zum Kopieren von Referenzen.

env-Parameter werden über cli übergeben.

Öffnen Sie dann die Befehlszeile für das aktuelle Verzeichnis und führen Sie npm start oder npm run build aus. Beachten Sie, dass sich Ersteres in der Entwicklungsumgebung befindet und keine Ausgabedatei (im Speicher) hat. Erst wenn Letzteres ausgeführt wird, gibt es eine Ausgabedatei.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

JS zum Ändern des Eingabetextfelds

Vue+animate erstellt Übergangsanimationen im Projekt

Das obige ist der detaillierte Inhalt vonWebpack-Entwicklungs- und Produktionsumgebung. 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)

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

Was ist der Unterschied zwischen Vite und Webpack? Was ist der Unterschied zwischen Vite und Webpack? Jan 11, 2023 pm 02:55 PM

Unterschiede: 1. Die Startgeschwindigkeit des Webpack-Servers ist langsamer als die von Vite. Da Vite beim Start nicht gepackt werden muss, müssen keine Modulabhängigkeiten analysiert und kompiliert werden, sodass die Startgeschwindigkeit sehr hoch ist. 2. Das Hot-Update von Vite ist in Bezug auf HRM schneller. Wenn sich der Inhalt eines bestimmten Moduls ändert, muss der Browser das Modul einfach erneut anfordern. 3. Vite verwendet esbuild, um Abhängigkeiten vorab zu erstellen, während Webpack auf Knoten basiert. 4. Die Ökologie von Vite ist nicht so gut wie die von Webpack und die Loader und Plug-Ins sind nicht umfangreich genug.

Verwendung von PHP und Webpack für die modulare Entwicklung Verwendung von PHP und Webpack für die modulare Entwicklung May 11, 2023 pm 03:52 PM

Mit der kontinuierlichen Weiterentwicklung der Webentwicklungstechnologie sind die Front-End- und Back-End-Trennung sowie die modulare Entwicklung zu einem weit verbreiteten Trend geworden. PHP ist eine häufig verwendete Back-End-Sprache. Bei der modularen Entwicklung müssen wir einige Tools verwenden, um Module zu verwalten und zu packen. In diesem Artikel wird die Verwendung von PHP und Webpack für die modulare Entwicklung vorgestellt. 1. Was ist modulare Entwicklung? Unter modularer Entwicklung versteht man die Zerlegung eines Programms in verschiedene unabhängige Module.

Wie konvertiert Webpack das ES6-Modul in das ES5-Modul? Wie konvertiert Webpack das ES6-Modul in das ES5-Modul? Oct 18, 2022 pm 03:48 PM

Konfigurationsmethode: 1. Verwenden Sie die Importmethode, um den ES6-Code in die gepackte JS-Codedatei einzufügen. 2. Verwenden Sie das NPM-Tool, um das Babel-Loader-Tool zu installieren. Die Syntax lautet „npm install -D babel-loader @babel/core“. @babel/preset-env“; 3. Erstellen Sie die Konfigurationsdatei „.babelrc“ des Babel-Tools und legen Sie die Transkodierungsregeln fest; 4. Konfigurieren Sie die Verpackungsregeln in der Datei webpack.config.js.

Verwenden Sie Spring Boot und Webpack, um Front-End-Projekte und Plug-in-Systeme zu erstellen Verwenden Sie Spring Boot und Webpack, um Front-End-Projekte und Plug-in-Systeme zu erstellen Jun 22, 2023 am 09:13 AM

Da die Komplexität moderner Webanwendungen immer weiter zunimmt, wird die Entwicklung exzellenter Front-End-Engineering- und Plug-in-Systeme immer wichtiger. Mit der Popularität von Spring Boot und Webpack sind sie zu einer perfekten Kombination für die Erstellung von Front-End-Projekten und Plug-in-Systemen geworden. SpringBoot ist ein Java-Framework, das Java-Anwendungen mit minimalen Konfigurationsanforderungen erstellt. Es bietet viele nützliche Funktionen, wie z. B. die automatische Konfiguration, sodass Entwickler Webanwendungen schneller und einfacher erstellen und bereitstellen können. W

Welche Dateien können Vue-Webpack-Pakete enthalten? Welche Dateien können Vue-Webpack-Pakete enthalten? Dec 20, 2022 pm 07:44 PM

In Vue kann Webpack JS-, CSS-, Bilder-, JSON- und andere Dateien in geeignete Formate für die Browserverwendung packen; in Webpack können JS-, CSS-, Bilder-, JSON- und andere Dateitypen als Module verwendet werden. Verschiedene Modulressourcen im Webpack können gepackt und zu einem oder mehreren Paketen zusammengeführt werden. Während des Verpackungsprozesses können die Ressourcen verarbeitet werden, z. B. durch Komprimieren von Bildern, Konvertieren von SCSS in CSS, Konvertieren der ES6-Syntax in ES5 usw., was möglich ist Wird anhand des HTML-Dateityps erkannt.

Was ist Webpack? Detaillierte Erklärung der Funktionsweise? Was ist Webpack? Detaillierte Erklärung der Funktionsweise? Oct 13, 2022 pm 07:36 PM

Webpack ist ein Modulpaketierungstool. Es erstellt Module für verschiedene Abhängigkeiten und packt sie alle in verwaltbare Ausgabedateien. Dies ist besonders nützlich für Single-Page-Anwendungen (der heutige De-facto-Standard für Webanwendungen).

Eine eingehende Analyse des Verpackungsprozesses und der Prinzipien von Webpack Eine eingehende Analyse des Verpackungsprozesses und der Prinzipien von Webpack Aug 09, 2022 pm 05:11 PM

Wie implementiert Webpack die Verpackung? Der folgende Artikel vermittelt Ihnen ein tiefgreifendes Verständnis der Webpack-Verpackungsprinzipien. Ich hoffe, er wird Ihnen hilfreich sein!

See all articles