1- import { createRequire } from 'node: module' ;
1+ import { createRequire } from 'module' ;
22import path , { dirname } from 'node:path' ;
33import { fileURLToPath } from 'node:url' ;
4- import process , { env } from 'node:process' ;
4+ import { env } from 'node:process' ;
55import webpack from 'webpack' ;
6- import MiniCssExtractPlugin from 'mini-css-extract-plugin' ;
76
87const __filename = fileURLToPath ( import . meta. url ) ;
98const __dirname = dirname ( __filename ) ;
10- const require = createRequire ( import . meta. url ) ;
119const dir = './client' ;
1210const isDev = env . NODE_ENV === 'development' ;
1311
1412const dist = path . resolve ( __dirname , 'dist' ) ;
1513const distDev = path . resolve ( __dirname , 'dist-dev' ) ;
1614const 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 ;
1820process . env . NODE_DEBUG = '' ;
21+ process . env . NODE_ENV = NODE_ENV || '' ;
1922
20- const rules = [ {
23+ const rules = clean ( [ {
2124 test : / \. j s $ / ,
2225 exclude : / n o d e _ m o d u l e s / ,
2326 loader : 'babel-loader' ,
@@ -29,54 +32,49 @@ const rules = [{
2932 'clean-css-loader' ,
3033 ] ,
3134} , {
32- test : / \. ( p n g ) $ / ,
35+ test : / \. ( p n g | g i f | s v g | w o f f | w o f f 2 | e o t | t t f ) $ / ,
3336 use : {
3437 loader : 'url-loader' ,
3538 options : {
3639 limit : 50_000 ,
3740 } ,
3841 } ,
39- } , {
40- test : / \. t t f $ / ,
41- use : [ 'file-loader' ] ,
42- } ] ;
42+ } ] ) ;
4343
4444export 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 ( / ^ n o d e : / , ( resource ) => {
73- resource . request = resource . request . replace ( / ^ n o d e : / , '' ) ;
74- } ) ,
75- new MiniCssExtractPlugin ( ) ,
70+ new webpack . NormalModuleReplacementPlugin ( / n o d e : / , ( resource ) => {
71+ resource . request = resource . request . replace ( / ^ n o d e : / , "" ) ;
72+ } ) ,
73+ new webpack . EnvironmentPlugin ( [ 'NODE_ENV' , 'NODE_DEBUG' ] ) ,
7674 ] ,
7775} ;
7876
7977function 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