webpack
Entwicklungsserver: webpack-dev-server
Suche…
Installation
webpack-dev-server
kann über npm
installiert werden
npm --save-dev webpack-dev-server
Jetzt können Sie den Server starten
./node_modules/.bin/webpack-dev-server
Um die Verwendung zu vereinfachen, können Sie der package.json
Skript package.json
// package.json
{
...
"scripts": {
"start": "webpack-dev-server"
},
...
}
Jetzt können Sie den Server ausführen, den Sie verwenden können
npm run start
webpack-dev-server
wird in der Datei webpack.config.js
im Abschnitt devServer
.
Um das Basisverzeichnis des Serverinhalts zu ändern, können Sie die Option contentBase
. Ein Beispiel für das Konfigurationsverzeichnis für die Einstellung public_html
könnte folgendermaßen aussehen
let path = require("path");
module.exports = {
...
devServer: {
contentBase: path.resolve(__dirname, "public_html")
},
...
}
Proxy verwenden
webpack-dev-server
kann einige Anfragen an andere Server weiterleiten. Dies kann für die Entwicklung eines API-Clients hilfreich sein, wenn Sie Anforderungen an dieselbe Domäne senden möchten.
Proxy wird über proxy
Parameter konfiguriert.
Eine Beispielkonfiguration für den dev-Server, der Anforderungen an /api
an andere Dienste weiterleitet, die auf Port 8080 warten, könnte folgendermaßen aussehen
// webpack.config.js
module.exports = {
...
devServer: {
proxy: {
"/api": {
target: "http://localhost:8080"
}
}
}
...
}
umschreiben
Es ist möglich, den pathRewrite
Option pathRewrite
neu zu schreiben.
Angenommen, Sie möchten das /api
Präfix aus dem vorherigen Beispiel entfernen, so könnte Ihre Konfiguration aussehen
// webpack.config.js
...
devServer: {
proxy: {
"/api": {
target: "http://localhost:8080",
pathRewrite: {"^/api" : ""}
}
}
}
...
Die Anfrage /api/user/256
wird in http://localhost:8080/user/256
konvertiert.
Filter
Es ist möglich, nur einige Anfragen zu vertreten. bypass
können Sie eine Funktion bereitstellen, deren Rückgabewert bestimmt, ob die Anfrage weitergeleitet werden soll oder nicht.
Angenommen, Sie möchten nur POST-Anforderungen an /api
webpack
den Rest der Konfiguration von webpack
lassen, so webpack
Ihre Konfiguration möglicherweise so aussieht
// webpack.config.js
...
devServer: {
proxy: {
"/api": {
target: "http://localhost:8080",
bypass: function(req, res, proxyOptions) {
if(req.method != 'POST') return false;
}
}
}
}
...