Skip to content

Commit e47b52b

Browse files
committed
feature: deepword: drop support of node < 18
1 parent 4b9cd24 commit e47b52b

File tree

2 files changed

+26
-28
lines changed

2 files changed

+26
-28
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,12 @@
101101
"try-catch": "^3.0.0",
102102
"url-loader": "^4.0.0",
103103
"util": "^0.12.3",
104-
"webpack": "^5.2.0",
104+
"webpack": "^5.90.1",
105105
"webpack-cli": "^4.1.0",
106106
"zipio": "^1.0.2"
107107
},
108108
"engines": {
109-
"node": ">=14"
109+
"node": ">=18"
110110
},
111111
"publishConfig": {
112112
"access": "public"

webpack.config.js

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
1-
import {createRequire} from 'node:module';
1+
import {createRequire} from 'module';
22
import path, {dirname} from 'node:path';
33
import {fileURLToPath} from 'node:url';
4-
import process, {env} from 'node:process';
4+
import {env} from 'node:process';
55
import webpack from 'webpack';
6-
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
76

87
const __filename = fileURLToPath(import.meta.url);
98
const __dirname = dirname(__filename);
10-
const require = createRequire(import.meta.url);
119
const dir = './client';
1210
const isDev = env.NODE_ENV === 'development';
1311

1412
const dist = path.resolve(__dirname, 'dist');
1513
const distDev = path.resolve(__dirname, 'dist-dev');
1614
const devtool = isDev ? 'eval' : 'source-map';
15+
const notEmpty = (a) => a;
16+
const clean = (array) => array.filter(notEmpty);
17+
const {resolve} = createRequire(import.meta.url);
1718

19+
const {NODE_ENV} = process.env;
1820
process.env.NODE_DEBUG = '';
21+
process.env.NODE_ENV = NODE_ENV || '';
1922

20-
const rules = [{
23+
const rules = clean([{
2124
test: /\.js$/,
2225
exclude: /node_modules/,
2326
loader: 'babel-loader',
@@ -29,54 +32,49 @@ const rules = [{
2932
'clean-css-loader',
3033
],
3134
}, {
32-
test: /\.(png)$/,
35+
test: /\.(png|gif|svg|woff|woff2|eot|ttf)$/,
3336
use: {
3437
loader: 'url-loader',
3538
options: {
3639
limit: 50_000,
3740
},
3841
},
39-
}, {
40-
test: /\.ttf$/,
41-
use: ['file-loader'],
42-
}];
42+
}]);
4343

4444
export default {
4545
devtool,
4646
entry: {
4747
deepword: `${dir}/index.js`,
4848
},
4949
output: {
50-
library: 'deepword',
50+
library: {
51+
name: 'deepword',
52+
export: 'default',
53+
type: 'var',
54+
},
5155
filename: '[name].js',
5256
path: isDev ? distDev : dist,
5357
pathinfo: isDev,
54-
libraryTarget: 'var',
55-
libraryExport: 'default',
5658
devtoolModuleFilenameTemplate,
5759
},
5860
module: {
5961
rules,
6062
},
61-
resolve: {
63+
resolve: {
6264
fallback: {
63-
path: require.resolve('path-browserify'),
64-
util: require.resolve('util'),
65+
path: resolve('path-browserify'),
66+
util: resolve('util'),
6567
},
66-
},
68+
},
6769
plugins: [
68-
new webpack.EnvironmentPlugin([
69-
'NODE_ENV',
70-
'NODE_DEBUG',
71-
]),
72-
new webpack.NormalModuleReplacementPlugin(/^node:/, (resource) => {
73-
resource.request = resource.request.replace(/^node:/, '');
74-
}),
75-
new MiniCssExtractPlugin(),
70+
new webpack.NormalModuleReplacementPlugin(/node:/, (resource) => {
71+
resource.request = resource.request.replace(/^node:/, "");
72+
}),
73+
new webpack.EnvironmentPlugin(['NODE_ENV', 'NODE_DEBUG']),
7674
],
7775
};
7876

7977
function devtoolModuleFilenameTemplate(info) {
8078
const resource = info.absoluteResourcePath.replace(__dirname + path.sep, '');
81-
return `file://deepword/${resource}`;
79+
return `file://edward/${resource}`;
8280
}

0 commit comments

Comments
 (0)