Gulp + live reload diffuse mon contenu sur localhost et (voici ce que je suis après) lance automatiquement le navigateur sur l'URL du serveur chaque fois que j'exécute la commande gulp (c.-à-d. Que je n'ai pas à cliquer sur l'icône du navigateur et accédez à l'URL manuellement). Cela peut-il aussi être fait dans Webpack?
J'ai essayé un plugin appelé open-browser-webpack-plugin, mais je ne pouvais pas le faire fonctionner.
Pour la version 2.x de Webpack, vous ajoutez simplement --open
ouvert à la CLI, comme indiqué ici:
https://webpack.js.org/configuration/dev-server/#devserver-open
La réponse d'Emelet n'est pas fausse du tout, mais cela ne fonctionnera pas sous Windows. Je fais ça avec:
"scripts": {
"start": "start http://localhost:8000/ & webpack-dev-server"
}
100% de travail et vous ne devez installer aucun module ou plugin.
Comme la plupart d’entre nous utilisons node (et npm) ces jours-ci: mettez la commande dans le script de démarrage npm:
MAC
"scripts": {
"start": "webpack-dev-server & open http://localhost:8080/"
}
LES FENÊTRES
"scripts": {
"start": "start http://localhost:8000/ & webpack-dev-server"
}
Merci à Enzo Ferey pour avoir souligné le fait que cela doit être différent sous Windows.
Dans un commentaire précédent , j'ai remarqué que la réponse actuellement acceptée fonctionne, mais qu'elle a pour effet secondaire de générer un processus qui doit être éliminé manuellement. Depuis, j'ai trouvé le moyen le plus canonique de lancer une action d'ouverture du navigateur sans utiliser de plug-in webpack séparé.
Cela dit, vous devez installer un paquet npm plus général: open
Créez ensuite un nouveau fichier dans votre dossier de projet nommé server.js
. Voici un exemple d'implémentation (notez qu'il est dans 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);
});
Notez que cette ligne:
config.entry.unshift("webpack-dev-server/client?" + target_entry);
- Cela signifie que vous pouvez supprimer l'appel à webpack-dev-server/client?...
de webpack.config.js
, car cette commande unshift
insérera la ligne dans config.entry
... Il s'agit d'une modularisation utile lorsque vous devez configurer une application avec plusieurs environnements et différents points d'entrée.
Enfin, dans package.json
, voici à quoi devrait ressembler la commande start
: un appel à node
pour exécuter server.js
:
"scripts": {
"start": "node server.js",
//...
}
Pour lancer le navigateur, il est possible d’ajouter --open
à la commande CLI selon la réponse acceptée.
npm start --open
ou
ng serve --open
Pour éviter de le faire tout le temps: il y a un changement simple à faire dans package.json
"scripts": {
"ng": "ng",
"start": "ng serve --open",
...
},
J'ai eu du succès avec BrowserSync avec webpack.
Dans webpack.config.js, j'inclus ceci:
var options = {
port: 9001,
Host: 'localhost',
server: {
baseDir: './public'
},
ui: {
port: 9002
},
startPath: process.argv[3].substr(2),
}
var browserSync = require('browser-sync');
browserSync(['public/**/*.*'],options);
Lancer le navigateur automatiquement et il est également possible de spécifier une page lors de l'ouverture du navigateur avec Webpack 4.
"scripts": {
...
"start": "webpack-dev-server --open-page index2.html"
}
directory/folder: package.json
{
"devDependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"webpack": "^4.16.0",
"webpack-dev-server": "^3.1.4"
},
"name": "",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"description": "",
"author": "",
"private": false,
"scripts": {
"start": "webpack-dev-server --open --watch"
},
"dependencies": {
"webpack-cli": "^3.0.8"
}
}
Ce script de démarrage exécute le serveur de développement, puis ouvre et met à jour automatiquement la page Web. Ceci est pour WebPack 4.