chore: use browserlist for minifier in helperplugin

This commit is contained in:
Josh 2023-01-26 16:28:40 +00:00
parent 70223b84af
commit 4ac40dfc21

View File

@ -1,8 +1,8 @@
const webpack = require("webpack"); const webpack = require('webpack');
const { ESBuildMinifyPlugin } = require("esbuild-loader"); const { ESBuildMinifyPlugin } = require('esbuild-loader');
const browserslistToEsbuild = require("browserslist-to-esbuild"); const browserslistToEsbuild = require('browserslist-to-esbuild');
const packageJson = require("./package.json"); const packageJson = require('./package.json');
const nodeModules = []; const nodeModules = [];
Object.keys(packageJson.dependencies).forEach((module) => { Object.keys(packageJson.dependencies).forEach((module) => {
@ -14,12 +14,12 @@ const baseConfig = {
entry: `${__dirname}/lib/src/index.js`, entry: `${__dirname}/lib/src/index.js`,
externals: nodeModules, externals: nodeModules,
mode: process.env.NODE_ENV, mode: process.env.NODE_ENV,
devtool: process.env.NODE_ENV === "production" ? false : "eval-source-map", devtool: process.env.NODE_ENV === 'production' ? false : 'eval-source-map',
optimization: { optimization: {
minimize: process.env.NODE_ENV === "production", minimize: process.env.NODE_ENV === 'production',
minimizer: [ minimizer: [
new ESBuildMinifyPlugin({ new ESBuildMinifyPlugin({
target: "es2015", target: browserslistToEsbuild(),
}), }),
], ],
}, },
@ -28,16 +28,16 @@ const baseConfig = {
{ {
test: /\.m?jsx?$/, test: /\.m?jsx?$/,
use: { use: {
loader: require.resolve("esbuild-loader"), loader: require.resolve('esbuild-loader'),
options: { options: {
loader: "jsx", loader: 'jsx',
target: browserslistToEsbuild(), target: browserslistToEsbuild(),
}, },
}, },
}, },
{ {
test: /\.(png|svg|jpg|gif)$/, test: /\.(png|svg|jpg|gif)$/,
type: "asset", type: 'asset',
parser: { parser: {
dataUrlCondition: { dataUrlCondition: {
maxSize: 8192, maxSize: 8192,
@ -47,12 +47,12 @@ const baseConfig = {
], ],
}, },
resolve: { resolve: {
extensions: ["*", ".js"], extensions: ['*', '.js'],
cacheWithContext: false, cacheWithContext: false,
}, },
plugins: [ plugins: [
new webpack.EnvironmentPlugin({ new webpack.EnvironmentPlugin({
NODE_ENV: "production", NODE_ENV: 'production',
}), }),
], ],
}; };
@ -65,8 +65,8 @@ const config = [
path: `${__dirname}/build`, path: `${__dirname}/build`,
filename: `helper-plugin.${process.env.NODE_ENV}.js`, filename: `helper-plugin.${process.env.NODE_ENV}.js`,
library: { library: {
name: "helperPlugin", name: 'helperPlugin',
type: "umd", type: 'umd',
}, },
umdNamedDefine: true, umdNamedDefine: true,
}, },
@ -77,7 +77,7 @@ const config = [
path: `${__dirname}/build`, path: `${__dirname}/build`,
filename: `helper-plugin.esm.js`, filename: `helper-plugin.esm.js`,
library: { library: {
type: "module", type: 'module',
}, },
}, },
experiments: { experiments: {
@ -90,7 +90,7 @@ const config = [
path: `${__dirname}/build`, path: `${__dirname}/build`,
filename: `helper-plugin.cjs.js`, filename: `helper-plugin.cjs.js`,
library: { library: {
type: "commonjs", type: 'commonjs',
}, },
}, },
}, },