|
1 |
| -const ManifestPlugin = require('webpack-manifest-plugin'); |
2 |
| -const WorkboxWebpackPlugin = require('workbox-webpack-plugin'); |
| 1 | +const { WebpackManifestPlugin } = require('webpack-manifest-plugin'); |
3 | 2 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
4 |
| -const CompressionPlugin = require('compression-webpack-plugin'); |
5 | 3 | const ProgmemGenerator = require('./progmem-generator.js');
|
| 4 | +const TerserPlugin = require('terser-webpack-plugin'); |
6 | 5 |
|
7 | 6 | module.exports = function override(config, env) {
|
8 | 7 | if (env === "production") {
|
9 | 8 | // rename the ouput file, we need it's path to be short, for embedded FS
|
10 | 9 | config.output.filename = 'js/[id].[chunkhash:4].js';
|
11 | 10 | config.output.chunkFilename = 'js/[id].[chunkhash:4].js';
|
12 | 11 |
|
13 |
| - // take out the manifest and service worker plugins |
14 |
| - config.plugins = config.plugins.filter((plugin) => !(plugin instanceof ManifestPlugin)); |
15 |
| - config.plugins = config.plugins.filter((plugin) => !(plugin instanceof WorkboxWebpackPlugin.GenerateSW)); |
| 12 | + // take out the manifest plugin |
| 13 | + config.plugins = config.plugins.filter((plugin) => !(plugin instanceof WebpackManifestPlugin)); |
16 | 14 |
|
17 | 15 | // shorten css filenames
|
18 | 16 | const miniCssExtractPlugin = config.plugins.find((plugin) => plugin instanceof MiniCssExtractPlugin);
|
19 | 17 | miniCssExtractPlugin.options.filename = "css/[id].[contenthash:4].css";
|
20 | 18 | miniCssExtractPlugin.options.chunkFilename = "css/[id].[contenthash:4].c.css";
|
21 | 19 |
|
| 20 | + // don't emit license file |
| 21 | + const terserPlugin = config.optimization.minimizer.find((plugin) => plugin instanceof TerserPlugin); |
| 22 | + terserPlugin.options.extractComments = false; |
| 23 | + |
22 | 24 | // build progmem data files
|
23 | 25 | config.plugins.push(new ProgmemGenerator({ outputPath: "../lib/framework/WWWData.h", bytesPerLine: 20 }));
|
24 |
| - |
25 |
| - // add compression plugin, compress javascript |
26 |
| - config.plugins.push(new CompressionPlugin({ |
27 |
| - filename: "[file].gz", |
28 |
| - algorithm: "gzip", |
29 |
| - test: /\.(js)$/, |
30 |
| - deleteOriginalAssets: true |
31 |
| - })); |
32 | 26 | }
|
33 | 27 | return config;
|
34 | 28 | };
|
0 commit comments