diff options
author | Jose Dapena Paz <jdapena@igalia.com> | 2022-05-31 16:04:59 +0200 |
---|---|---|
committer | Jose Dapena Paz <jdapena@igalia.com> | 2022-05-31 18:22:10 +0200 |
commit | 6de51f102451a9f63e6f597e99104eff14c5c2c1 (patch) | |
tree | da76f3a8ee3788ce55ff5d3a08fd64a41c217a52 /webpack.config.js | |
parent | d22e1bf4701cac3d3104d2200583bc9ae4773f9b (diff) |
Update to recent dependencies
Update to recent webpack and other nodejs dependencies.
Bug-AGL: SPEC-4248, SPEC-4355
Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
Change-Id: I65ae288416fffc8798f97fb5f11462f7ac23cc58
Diffstat (limited to 'webpack.config.js')
-rw-r--r-- | webpack.config.js | 98 |
1 files changed, 39 insertions, 59 deletions
diff --git a/webpack.config.js b/webpack.config.js index b6177cc..63c5b11 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,11 +1,9 @@ const path = require('path'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); -const CleanWebpackPlugin = require('clean-webpack-plugin'); +const TerserPlugin = require('terser-webpack-plugin'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const MiniCSSExtractPlugin = require('mini-css-extract-plugin'); const CopyPlugin = require('copy-webpack-plugin'); -const ZipPlugin = require('zip-webpack-plugin'); - module.exports = { mode: 'production', @@ -20,49 +18,45 @@ module.exports = { library: '[name]' }, optimization: { - minimizer: [new UglifyJsPlugin()], + minimize: true, + minimizer: [ + new TerserPlugin({ + minify: TerserPlugin.uglifyJsMinify, + terserOptions: {} + }) + ], }, plugins: [ - new CleanWebpackPlugin(['dist']), - new CopyPlugin([ - { - from: 'src/icon.*', - flatten: true - }, - { - from: 'src/config.xml', - flatten: true - }, - { - from: 'src/mockups/*', - to: 'mockups/', - flatten: true - }, - { - from: 'src/images/*', - to: 'images/', - flatten: true - }, - { - from: 'src/templates/*', - to: 'templates/', - flatten: true - } - ]), + new CleanWebpackPlugin({ + cleanAfterEveryBuildPatterns: ['dist'] + }), + new CopyPlugin({ + patterns: [ + { + from: 'src/icon.*', + to: "[name][ext]" + }, + { + from: 'src/appinfo.json', + to: "appinfo.json" + }, + { + from: 'src/images/*', + to: 'images/[name][ext]' + }, + { + from: 'src/templates/*', + to: 'templates/[name][ext]' + } + ] + }), new HtmlWebpackPlugin({ template: 'src/index.html', filename: 'index.html', inject: 'body' }), new MiniCSSExtractPlugin({ - filename: 'app.css', - path: __dirname + '/dist' - }), - new ZipPlugin({ - path: __dirname + '/package', - filename: 'settings', - extension: 'wgt', - exclude: [] + filename: 'app.css' }) ], module: { @@ -92,33 +86,19 @@ module.exports = { }, { test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/, - use: [ - { - loader: 'file-loader', - options: { - name: '[name].[ext]', - outputPath: 'fonts/' - } - } - ] + type: 'asset/resource', + generator: { + filename: 'fonts/[name][ext]' + } }, { test: /\.(gif|png|jpe?g|svg)$/i, - use: [ - 'file-loader', - { - loader: "image-webpack-loader", - options: { - bypassOnDebug: true, // webpack@1.x - disable: true, // webpack@2.x and newer - }, - } - ] + type: 'asset/resource' } ] }, devServer: { - contentBase: path.join(__dirname, 'dist'), + static: path.join(__dirname, 'dist'), compress: true, port: 9000 } |