In a previous comment, ho notato che la risposta attualmente accettata funziona ma ha l'effetto collaterale di generare un processo che deve essere ucciso manualmente. Da allora ho capito il modo più canonico di avviare un'azione aperta del browser senza utilizzare un plug-in webpack separato.
Detto questo, si ha bisogno di installare un pacchetto NPM più generale: open
quindi creare un nuovo file alla cartella di progetto denominato server.js
. Ecco un esempio di implementazione (si noti che è in ES6):
'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);
});
Si noti che questa linea:
config.entry.unshift("webpack-dev-server/client?" + target_entry);
- significa che è possibile rimuovere la chiamata a webpack-dev-server/client?...
da webpack.config.js
, come questo comando unshift
sarà inserisci la linea in config.entry
... questa è una utile modularizzazione per quando devi configurare un'app con più ambienti e diversi punti di ingresso.
Infine, nel package.json
, questo è ciò che il comando start
dovrebbe assomigliare: una chiamata a node
per eseguire server.js
:
"scripts": {
"start": "node server.js",
//...
}
fonte
2016-06-17 19:46:46
un problema che ho trovato è che inizia ad aprire il collegamento prima che la costruzione dei file sia finita. Sarà meglio se apre il link quando tutto è pronto. – new2cpp