J'ai deux fichiers qui sont combinés sous 600 octets (.6kb) comme ci-dessous.
Alors, comment se fait-il que mon app.bundle.js soit si gros (987kb) et, plus important encore, comment peut-on en gérer la taille ?
fichier src index.js
import _ from 'lodash';
import printMe from './print.js';
function component() {
var element = document.createElement('div');
var btn = document.createElement('button');
// Lodash, now imported by this script
element.innerHTML = _.join(['Hello', 'webpack'], ' ');
btn.innerHTML = 'click and check console';
btn.onclick = printMe;
element.appendChild(btn);
return element;
}
document.body.appendChild(component());
fichier src print.js
export default function printMe() {
consoe.log('Called from print.js');
}
webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
entry: {
app: './src/index.js',
print:'./src/print.js'
},
devtool: 'inline-source-map',
plugins: [
new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
title: 'Output Management'
})
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
paquet.json
{
"name": "my-webpack-4-proj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"mode": "development",
"scripts": {
"dev": "webpack --mode development",
"build": "webpack --mode production",
"watch": "webpack --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"clean-webpack-plugin": "^0.1.19",
"css-loader": "^0.28.11",
"csv-loader": "^2.1.1",
"file-loader": "^1.1.11",
"html-webpack-plugin": "^3.0.6",
"style-loader": "^0.20.3",
"webpack": "^4.1.1",
"webpack-cli": "^2.0.12",
"xml-loader": "^1.2.1"
},
"dependencies": {
"express": "^4.16.3",
"lowdash": "^1.2.0"
}
}
Message d'avertissement :
AVERTISSEMENT concernant la limite de taille des actifs : Le(s) actif(s) suivant(s) dépassent la limite de taille recommandée (244 KiB). Cela peut avoir un impact sur les performances du site Web. Actifs : app.bundle.js (964 KiB)
1 votes
El
print.js
a été renommée il y a quelque temps enprint-js
. Vous devez changer cela dans votre projet pour obtenir les dernières versions de la librairie.5 votes
Je laisserais bien un commentaire mais je n'ai pas encore assez de réputation. Je voulais signaler que la suggestion de Riyad de faire "performance : { hints : false, maxEntrypointSize : 512000, maxAssetSize : 512000 } ```Ne résout pas le problème sous-jacent, elle désactive juste l'avertissement que vous voyez. Si des utilisateurs novices de webpack trouvent cette solution et constatent que les avertissements disparaissent. Sachez que vous ne supprimez pas réellement l'avertissement, vous le désactivez simplement.
0 votes
Quelqu'un sait-il comment faire cela avec des projets utilisant 'vue-cli-service' ? La documentation de vue.config.js n'explique pas en détail comment définir "devtool : false".