1
- const webpack = require ( 'webpack' ) ;
2
- const CopyPlugin = require ( "copy-webpack-plugin" ) ;
3
- const WorkboxPlugin = require ( 'workbox-webpack-plugin' ) ;
4
- const path = require ( 'path' ) ;
5
- const packageConfig = require ( './package.json' ) ;
1
+ import CopyPlugin from 'copy-webpack-plugin' ;
2
+ import WorkboxPlugin from 'workbox-webpack-plugin' ;
3
+ import webpack from 'webpack' ;
4
+ import packageConfig from './package.json' with { type : 'json' } ;
5
+
6
+ import path , { dirname } from 'path' ;
7
+ import { fileURLToPath } from 'url' ;
8
+
9
+ const __filename = fileURLToPath ( import . meta. url ) ;
10
+ const __dirname = dirname ( __filename ) ;
6
11
7
12
const LOCAL_URL = process . env . LOCAL_URL ?? 'http://localhost:4000/' ;
8
13
const PUBLIC_URL = process . env . PUBLIC_URL ?? packageConfig . homepage ;
9
14
const isDev = process . env . NODE_ENV !== 'production' ;
10
15
11
- module . exports = [
16
+
17
+ /**
18
+ * @type {import('webpack').Configuration[] }
19
+ */
20
+ const config = [
12
21
{
13
22
entry : './src/index.tsx' ,
14
23
devtool : isDev ? 'source-map' : 'nosources-source-map' ,
@@ -38,7 +47,7 @@ module.exports = [
38
47
{
39
48
test : / \. c s s $ / i,
40
49
use : [
41
- " style-loader" ,
50
+ ' style-loader' ,
42
51
{
43
52
loader : 'css-loader' ,
44
53
options :{ url : false } ,
@@ -47,7 +56,7 @@ module.exports = [
47
56
} ,
48
57
// {
49
58
// test: /\.(png|gif|woff|woff2|eot|ttf|svg)$/,
50
- // loader: " url-loader?limit=100000"
59
+ // loader: ' url-loader?limit=100000'
51
60
// },
52
61
] ,
53
62
} ,
@@ -59,7 +68,7 @@ module.exports = [
59
68
path : path . resolve ( __dirname , 'dist' ) ,
60
69
} ,
61
70
devServer : {
62
- static : path . join ( __dirname , " dist" ) ,
71
+ static : path . join ( __dirname , ' dist' ) ,
63
72
compress : true ,
64
73
port : 4000 ,
65
74
} ,
@@ -74,9 +83,9 @@ module.exports = [
74
83
/ \. m a p $ / ,
75
84
/ ^ m a n i f e s t .* \. j s $ / ,
76
85
] ,
77
- // these options encourage the ServiceWorkers to get in there fast
78
- // and not allow any straggling " old" SWs to hang around
79
- swDest : path . join ( __dirname , " dist" , 'sw.js' ) ,
86
+ // these options encourage the ServiceWorkers to get in there fast
87
+ // and not allow any straggling ' old' SWs to hang around
88
+ swDest : path . join ( __dirname , ' dist' , 'sw.js' ) ,
80
89
maximumFileSizeToCacheInBytes : 200 * 1024 * 1024 ,
81
90
clientsClaim : true ,
82
91
skipWaiting : true ,
@@ -95,16 +104,16 @@ module.exports = [
95
104
] : [ ] ) ,
96
105
new CopyPlugin ( {
97
106
patterns : [
98
- {
107
+ {
99
108
from : path . resolve ( __dirname , 'public' ) ,
100
109
toType : 'dir' ,
101
110
} ,
102
- {
111
+ {
103
112
from : path . resolve ( __dirname , 'node_modules/primeicons/fonts' ) ,
104
113
to : path . resolve ( __dirname , 'dist/fonts' ) ,
105
114
toType : 'dir' ,
106
115
} ,
107
- {
116
+ {
108
117
from : path . resolve ( __dirname , 'src/wasm/openscad.js' ) ,
109
118
from : path . resolve ( __dirname , 'src/wasm/openscad.wasm' ) ,
110
119
} ,
@@ -177,3 +186,5 @@ module.exports = [
177
186
] ,
178
187
} ,
179
188
] ;
189
+
190
+ export default config ;
0 commit comments