11// eslint-disable-next-line import/no-extraneous-dependencies
22const { DefinePlugin, NormalModuleReplacementPlugin, ProvidePlugin, IgnorePlugin } = require ( 'webpack' ) ;
3- const CopyPlugin = require ( 'copy-webpack-plugin' ) ;
43
54const path = require ( 'path' ) ;
65
@@ -36,11 +35,11 @@ module.exports = {
3635 {
3736 loader : 'babel-loader' ,
3837 options : {
39- presets : [ '@babel/preset-react' , '@babel/preset-env' , '@babel/preset-typescript' ] ,
4038 plugins : [
4139 '@babel/transform-runtime' ,
42- [ '@babel/transform-react-jsx' , { runtime : 'automatic' , importSource : 'preact' } ]
43- ]
40+ [ '@babel/transform-react-jsx' , { importSource : 'preact' , runtime : 'automatic' } ]
41+ ] ,
42+ presets : [ '@babel/preset-react' , '@babel/preset-env' , '@babel/preset-typescript' ]
4443 }
4544 }
4645 ]
@@ -71,15 +70,17 @@ module.exports = {
7170 new IgnorePlugin ( {
7271 contextRegExp : / b i p 3 9 \/ s r c \/ w o r d l i s t s $ / ,
7372 resourceRegExp : / ^ \. \/ (? ! e n g l i s h ) /
74- } ) ,
75- new CopyPlugin ( {
76- patterns : [ { from : 'src/assets' , to : 'assets' } ]
7773 } )
7874 ] ,
7975 resolve : {
76+ alias : {
77+ react : 'preact/compat' ,
78+ 'react-dom' : 'preact/compat'
79+ } ,
8080 extensions : [ '.ts' , '.js' , '.tsx' ] ,
8181 fallback : {
8282 buffer : require . resolve ( 'buffer/' ) ,
83+ crypto : require . resolve ( 'crypto-browserify' ) ,
8384 events : require . resolve ( 'events/' ) ,
8485 fs : false ,
8586 'get-port-please' : false ,
@@ -88,13 +89,8 @@ module.exports = {
8889 os : false ,
8990 path : false ,
9091 perf_hooks : false ,
91- crypto : require . resolve ( 'crypto-browserify' ) ,
9292 stream : require . resolve ( 'readable-stream' ) ,
9393 util : require . resolve ( 'util/' )
94- } ,
95- alias : {
96- react : 'preact/compat' ,
97- 'react-dom' : 'preact/compat'
9894 }
9995 } ,
10096 watchOptions : {
0 commit comments