|
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