Travaux Pratiques
Premier pas
- Créer un répertoire :
/premiers-pas-webpack
- Initialiser un projet NPM
cd premiers-pas-webpack
npm init -y
- Installer Webpack
npm install webpack --save-dev
- Installer le client Webpack
npm install --save-dev webpack-cli
- Visualiser le répertoire node_modules/.bin.
- Créer les fichiers
dist/index.html
,src/index.js
etsrc/serviceTitre.js
.
/premiers-pas-webpack
/dist
index.html
/src
index.js
serviceTitre.js
- Compléter le fichier
dist/index.html
:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Démo Webpack</title>
<script src="main.js"></script>
</head>
<body></body>
</html>
- Compléter le fichier
src/serviceTitre.js
:
// insérer titre
export function insererTitre() {
document.querySelector('body').insertAdjacentHTML('afterbegin', '<h1>Démo Webpack</h1>');
}
- Compléter le fichier
src/index.js
:
import { insererTitre } from './serviceTitre';
document.addEventListener('DOMContentLoaded', function(event) {
insererTitre();
});
- Exécuter la commande :
node_modules/.bin/webpack
Visualiser le contenu du fichier généré
dist/main.js
.Observer le contenu du fichier build/main.js.
Afficher la page
dist/index.html
et vérifier l'affichage du titre.Compléter le fichier package.json
...
"scripts": {
...
"build" : "webpack --mode production",
...
},
...
- Exécuter la commande :
npm run build
Configuration
- Créer un fichier webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
Noter que le nom du fichier de sortie est désormais dist/bundle.js
et non dist/main.js
.
- Exécuter la commande :
npm run build
Vérifier la présence du fichier
dist/bundle.js
.Modifier le fichier
index.html
pour qu'il soit cohérent avec notre nouvelle configuration et supprimer le fichiermain.js
.
Webpack Dev Server
- Installer le serveur Webpack :
npm install webpack-dev-server --save-dev
- Compléter la configuration Webpack comme suit :
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
devServer: {
contentBase: path.join(__dirname, "dist"),
compress: true,
port: 8081
},
devtool: "cheap-module-eval-source-map",
mode : "development"
};
- Ajouter une tâche NPM
start
:
...
"scripts" : {
...
"start": "webpack-dev-server",
...
}
Tester le serveur Web avec
npm start
.Vérifier le rechargement à chaud de vos modifications.
Vérifier que vous pouvez faire du debug sur vos sources initiales via les outils de développement de votre navigateur.