Skip to content

Commit 1918c68

Browse files
committed
Introduce esbuild on webpack
1 parent 19fccdc commit 1918c68

File tree

3 files changed

+72
-50
lines changed

3 files changed

+72
-50
lines changed

package-lock.json

Lines changed: 61 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"css-minimizer-webpack-plugin": "1.2.0",
2121
"dropzone": "5.7.2",
2222
"easymde": "2.13.0",
23+
"esbuild-loader": "2.8.0",
2324
"escape-goat": "3.0.0",
2425
"fast-glob": "3.2.4",
2526
"file-loader": "6.2.0",

webpack.config.js

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
55
const LicenseCheckerWebpackPlugin = require('license-checker-webpack-plugin');
66
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
77
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
8-
const TerserPlugin = require('terser-webpack-plugin');
98
const VueLoaderPlugin = require('vue-loader/lib/plugin');
9+
const {
10+
ESBuildPlugin,
11+
ESBuildMinifyPlugin
12+
} = require('esbuild-loader');
1013
const {statSync} = require('fs');
1114
const {resolve, parse} = require('path');
1215
const {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: /node_modules/,
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

Comments
 (0)