In a previous comment, habe ich festgestellt, dass die derzeit akzeptierte Antwort funktioniert, aber es hat die Nebenwirkung, einen Prozess zu erzeugen, der manuell getötet werden muss. Ich habe seitdem die kanonischere Art herausgefunden, eine Browser-Open-Action zu initiieren, ohne ein separates Webpack-Plugin zu verwenden.
Das heißt, Sie brauchen eine allgemeinere npm Paket zu installieren: open
Dann erstellen Sie eine neue Datei in Ihrem Projektordner server.js
benannt. Hier ist eine Beispielimplementierung (beachten Sie, dass es in ES6 ist):
'use strict';
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const config = require('./webpack.config');
const open = require('open');
const port_number = 8080;
let target_entry = 'http://localhost:' + port_number + '/';
config.entry.unshift("webpack-dev-server/client?" + target_entry);
new WebpackDevServer(webpack(config), {contentBase: 'src', hot: true, stats: { colors: true }, publicPath: '/assets/'})
.listen(port_number, 'localhost' , (err) => {
if (err) {
console.log(err);
}
console.log('Listening at localhost:' + port_number);
console.log('Opening your system browser...');
open(target_entry);
});
Beachten Sie, dass diese Zeile:
config.entry.unshift("webpack-dev-server/client?" + target_entry);
- Bedeutet, können Sie den Anruf zu webpack-dev-server/client?...
von webpack.config.js
, wie dieser unshift
Befehl entfernen wird Fügen Sie die Zeile in config.entry
... Dies ist eine hilfreiche Modularisierung für, wenn Sie eine App mit mehreren Umgebungen und verschiedenen Einstiegspunkten einrichten müssen.
schließlich in package.json
, ist es das, was der start
Befehl soll wie folgt aussehen: ein Aufruf an node
läuft server.js
:
"scripts": {
"start": "node server.js",
//...
}
ein Problem, das ich gefunden habe, ist es beginnt, den Link zu öffnen, bevor die Dateien fertig sind. Es wird besser sein, wenn es die Verbindung öffnet, wenn alles bereit ist. – new2cpp