@@ -5,8 +5,11 @@ const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
55const LicenseCheckerWebpackPlugin = require ( 'license-checker-webpack-plugin' ) ;
66const MiniCssExtractPlugin = require ( 'mini-css-extract-plugin' ) ;
77const MonacoWebpackPlugin = require ( 'monaco-editor-webpack-plugin' ) ;
8- const TerserPlugin = require ( 'terser-webpack-plugin' ) ;
98const VueLoaderPlugin = require ( 'vue-loader/lib/plugin' ) ;
9+ const {
10+ ESBuildPlugin,
11+ ESBuildMinifyPlugin
12+ } = require ( 'esbuild-loader' ) ;
1013const { statSync} = require ( 'fs' ) ;
1114const { resolve, parse} = require ( 'path' ) ;
1215const { SourceMapDevToolPlugin} = require ( 'webpack' ) ;
@@ -78,13 +81,9 @@ module.exports = {
7881 optimization : {
7982 minimize : isProduction ,
8083 minimizer : [
81- new TerserPlugin ( {
82- extractComments : false ,
83- terserOptions : {
84- output : {
85- comments : false ,
86- } ,
87- } ,
84+ new ESBuildMinifyPlugin ( {
85+ target : 'es2015' , // Syntax to compile to (see options below for possible values)
86+ minify : true
8887 } ) ,
8988 new CssMinimizerPlugin ( {
9089 sourceMap : true ,
@@ -131,36 +130,9 @@ module.exports = {
131130 exclude : / n o d e _ m o d u l e s / ,
132131 use : [
133132 {
134- loader : 'babel -loader' ,
133+ loader : 'esbuild -loader' ,
135134 options : {
136- sourceMaps : true ,
137- cacheDirectory : true ,
138- cacheCompression : false ,
139- cacheIdentifier : [
140- resolve ( __dirname , 'package.json' ) ,
141- resolve ( __dirname , 'package-lock.json' ) ,
142- resolve ( __dirname , 'webpack.config.js' ) ,
143- ] . map ( ( path ) => statSync ( path ) . mtime . getTime ( ) ) . join ( ':' ) ,
144- presets : [
145- [
146- '@babel/preset-env' ,
147- {
148- useBuiltIns : 'usage' ,
149- corejs : 3 ,
150- } ,
151- ] ,
152- ] ,
153- plugins : [
154- [
155- '@babel/plugin-transform-runtime' ,
156- {
157- regenerator : true ,
158- }
159- ] ,
160- ] ,
161- generatorOpts : {
162- compact : false ,
163- } ,
135+ target : 'es2015' // Syntax to compile to (see options below for possible values)
164136 } ,
165137 } ,
166138 ] ,
@@ -243,6 +215,7 @@ module.exports = {
243215 } ,
244216 plugins : [
245217 new VueLoaderPlugin ( ) ,
218+ new ESBuildPlugin ( ) ,
246219 new MiniCssExtractPlugin ( {
247220 filename : 'css/[name].css' ,
248221 chunkFilename : 'css/[name].css' ,
0 commit comments