Skip to content

Commit 8de9bd0

Browse files
committed
chore: webpack: migrate to ESM
1 parent e178321 commit 8de9bd0

8 files changed

Lines changed: 30 additions & 52 deletions

File tree

.webpack/css.js renamed to .webpack/css.mjs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
'use strict';
2-
3-
const {env} = require('node:process');
4-
5-
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
6-
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
1+
import {env} from 'node:process';
2+
import OptimizeCssAssetsPlugin from 'optimize-css-assets-webpack-plugin';
3+
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
74

85
const isDev = env.NODE_ENV === 'development';
96

@@ -29,7 +26,7 @@ const rules = [{
2926
type: 'asset/inline',
3027
}];
3128

32-
module.exports = {
29+
export default {
3330
plugins,
3431
module: {
3532
rules,

.webpack/html.js renamed to .webpack/html.mjs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
1-
'use strict';
2-
3-
const {env} = require('node:process');
4-
const HtmlWebpackPlugin = require('html-webpack-plugin');
1+
import {env} from 'node:process';
2+
import HtmlWebpackPlugin from 'html-webpack-plugin';
53

64
const isDev = env.NODE_ENV === 'development';
75

8-
const plugins = [
6+
export const plugins = [
97
new HtmlWebpackPlugin({
108
inject: false,
119
template: 'html/index.html',
1210
minify: !isDev && getMinifyHtmlOptions(),
1311
}),
1412
];
1513

16-
module.exports = {
17-
plugins,
18-
};
19-
2014
function getMinifyHtmlOptions() {
2115
return {
2216
removeComments: true,

.webpack/js.js renamed to .webpack/js.mjs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
1-
'use strict';
1+
import {resolve, sep} from 'node:path';
2+
import {env} from 'node:process';
3+
import webpack from 'webpack';
4+
import WebpackBar from 'webpackbar';
25

3-
const {
4-
resolve,
5-
sep,
6-
join,
7-
} = require('node:path');
8-
9-
const {env} = require('node:process');
106
const {
117
EnvironmentPlugin,
128
NormalModuleReplacementPlugin,
13-
} = require('webpack');
14-
15-
const WebpackBar = require('webpackbar');
9+
} = webpack;
1610

1711
const modules = './modules';
1812
const dirModules = './client/modules';
@@ -23,7 +17,7 @@ const dir = './client';
2317
const {NODE_ENV} = env;
2418
const isDev = NODE_ENV === 'development';
2519

26-
const rootDir = join(__dirname, '..');
20+
const rootDir = new URL('..', import.meta.url).pathname;
2721
const dist = resolve(rootDir, 'dist');
2822
const distDev = resolve(rootDir, 'dist-dev');
2923
const devtool = isDev ? 'eval' : 'source-map';
@@ -92,16 +86,16 @@ const splitChunks = {
9286
},
9387
};
9488

95-
module.exports = {
89+
export default {
9690
resolve: {
9791
symlinks: false,
9892
alias: {
9993
'node:process': 'process',
10094
'node:path': 'path',
10195
},
10296
fallback: {
103-
path: require.resolve('path-browserify'),
104-
process: require.resolve('process/browser'),
97+
path: import.meta.resolve('path-browserify'),
98+
process: import.meta.resolve('process/browser'),
10599
},
106100
},
107101
devtool,
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
'use strict';
2-
31
// used by OptimizeCssAssetsPlugin
4-
const defaultPreset = require('cssnano-preset-default');
2+
import defaultPreset from 'cssnano-preset-default';
53

6-
module.exports = defaultPreset({
4+
export default defaultPreset({
75
svgo: {
86
plugins: [{
97
convertPathData: false,

eslint.config.mjs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ export const match = {
1818
},
1919
'bin/cloudcmd.js': {
2020
'no-console': 'off',
21-
},
22-
'cssnano.config.js': {
23-
'n/no-extraneous-require': 'off',
24-
},
21+
}
2522
};
2623
export default defineConfig([
2724
safeAlign, {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@
169169
"codegen.macro": "^4.0.0",
170170
"css-loader": "^7.1.2",
171171
"css-modules-require-hook": "^4.2.3",
172+
"cssnano-preset-default": "^7.0.10",
172173
"domtokenlist-shim": "^1.2.0",
173174
"emitify": "^4.0.1",
174175
"eslint": "^9.23.0",

webpack.config.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

webpack.config.mjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {merge} from 'webpack-merge';
2+
import * as htmlConfig from './.webpack/html.mjs';
3+
import cssConfig from './.webpack/css.mjs';
4+
import jsConfig from './.webpack/js.mjs';
5+
6+
export default merge([
7+
jsConfig,
8+
htmlConfig,
9+
cssConfig,
10+
]);

0 commit comments

Comments
 (0)