@@ -77,6 +77,8 @@ function configureSourceMap(sourceMap: SourceMap) {
77
77
return { sourceMapRules, sourceMapPlugins } ;
78
78
}
79
79
80
+ const VENDORS_TEST = / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ;
81
+
80
82
export async function _createConfig (
81
83
options : AngularRspackPluginOptions ,
82
84
rspackConfigOverrides ?: Partial < Configuration >
@@ -231,48 +233,61 @@ export async function _createConfig(
231
233
normalizedOptions . devServer ?. proxyConfig
232
234
) ,
233
235
} ,
234
- optimization : normalizedOptions . optimization
235
- ? {
236
- minimize : true ,
237
- runtimeChunk : false ,
238
- splitChunks : {
239
- chunks : 'async' ,
240
- minChunks : 1 ,
241
- minSize : 20000 ,
242
- maxAsyncRequests : 30 ,
243
- maxInitialRequests : 30 ,
244
- cacheGroups : {
245
- defaultVendors : {
246
- test : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ,
247
- priority : - 10 ,
248
- reuseExistingChunk : true ,
249
- } ,
250
- default : {
251
- minChunks : 2 ,
252
- priority : - 20 ,
253
- reuseExistingChunk : true ,
254
- } ,
255
- } ,
256
- } ,
257
- minimizer : [
258
- new SwcJsMinimizerRspackPlugin ( {
259
- minimizerOptions : {
260
- minify : true ,
261
- mangle : true ,
262
- compress : {
263
- passes : 2 ,
236
+ optimization : {
237
+ chunkIds : normalizedOptions . namedChunks ? 'named' : 'deterministic' ,
238
+ moduleIds : 'deterministic' ,
239
+ ...( normalizedOptions . optimization
240
+ ? {
241
+ minimize : true ,
242
+ runtimeChunk : 'single' ,
243
+ splitChunks : {
244
+ chunks : 'async' ,
245
+ minChunks : 1 ,
246
+ minSize : 20000 ,
247
+ maxAsyncRequests : 30 ,
248
+ maxInitialRequests : 30 ,
249
+ cacheGroups : {
250
+ default : normalizedOptions . commonChunk && {
251
+ chunks : 'async' ,
252
+ minChunks : 2 ,
253
+ priority : 10 ,
264
254
} ,
265
- format : {
266
- comments : false ,
255
+ common : normalizedOptions . commonChunk && {
256
+ name : 'common' ,
257
+ chunks : 'async' ,
258
+ minChunks : 2 ,
259
+ enforce : true ,
260
+ priority : 5 ,
261
+ } ,
262
+ vendors : false ,
263
+ defaultVendors : normalizedOptions . vendorChunk && {
264
+ name : 'vendor' ,
265
+ chunks : ( chunk ) => chunk . name === 'main' ,
266
+ enforce : true ,
267
+ test : VENDORS_TEST ,
267
268
} ,
268
269
} ,
269
- } ) ,
270
- ] ,
271
- }
272
- : {
273
- minimize : false ,
274
- minimizer : [ ] ,
275
- } ,
270
+ } ,
271
+ minimizer : [
272
+ new SwcJsMinimizerRspackPlugin ( {
273
+ minimizerOptions : {
274
+ minify : true ,
275
+ mangle : true ,
276
+ compress : {
277
+ passes : 2 ,
278
+ } ,
279
+ format : {
280
+ comments : false ,
281
+ } ,
282
+ } ,
283
+ } ) ,
284
+ ] ,
285
+ }
286
+ : {
287
+ minimize : false ,
288
+ minimizer : [ ] ,
289
+ } ) ,
290
+ } ,
276
291
plugins : [
277
292
...( defaultConfig . plugins ?? [ ] ) ,
278
293
new NgRspackPlugin ( {
@@ -362,48 +377,61 @@ export async function _createConfig(
362
377
scriptType : 'module' ,
363
378
module : true ,
364
379
} ,
365
- optimization : normalizedOptions . optimization
366
- ? {
367
- minimize : true ,
368
- runtimeChunk : 'single' ,
369
- splitChunks : {
370
- chunks : 'all' ,
371
- minChunks : 1 ,
372
- minSize : 20000 ,
373
- maxAsyncRequests : 30 ,
374
- maxInitialRequests : 30 ,
375
- cacheGroups : {
376
- defaultVendors : {
377
- test : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ,
378
- priority : - 10 ,
379
- reuseExistingChunk : true ,
380
- } ,
381
- default : {
382
- minChunks : 2 ,
383
- priority : - 20 ,
384
- reuseExistingChunk : true ,
385
- } ,
386
- } ,
387
- } ,
388
- minimizer : [
389
- new SwcJsMinimizerRspackPlugin ( {
390
- minimizerOptions : {
391
- minify : true ,
392
- mangle : true ,
393
- compress : {
394
- passes : 2 ,
380
+ optimization : {
381
+ chunkIds : normalizedOptions . namedChunks ? 'named' : 'deterministic' ,
382
+ moduleIds : 'deterministic' ,
383
+ ...( normalizedOptions . optimization
384
+ ? {
385
+ minimize : true ,
386
+ runtimeChunk : false ,
387
+ splitChunks : {
388
+ chunks : 'all' ,
389
+ minChunks : 1 ,
390
+ minSize : 20000 ,
391
+ maxAsyncRequests : 30 ,
392
+ maxInitialRequests : 30 ,
393
+ cacheGroups : {
394
+ default : normalizedOptions . commonChunk && {
395
+ chunks : 'async' ,
396
+ minChunks : 2 ,
397
+ priority : 10 ,
395
398
} ,
396
- format : {
397
- comments : false ,
399
+ common : normalizedOptions . commonChunk && {
400
+ name : 'common' ,
401
+ chunks : 'async' ,
402
+ minChunks : 2 ,
403
+ enforce : true ,
404
+ priority : 5 ,
405
+ } ,
406
+ vendors : false ,
407
+ defaultVendors : normalizedOptions . vendorChunk && {
408
+ name : 'vendor' ,
409
+ chunks : ( chunk ) => chunk . name === 'main' ,
410
+ enforce : true ,
411
+ test : VENDORS_TEST ,
398
412
} ,
399
413
} ,
400
- } ) ,
401
- ] ,
402
- }
403
- : {
404
- minimize : false ,
405
- minimizer : [ ] ,
406
- } ,
414
+ } ,
415
+ minimizer : [
416
+ new SwcJsMinimizerRspackPlugin ( {
417
+ minimizerOptions : {
418
+ minify : true ,
419
+ mangle : true ,
420
+ compress : {
421
+ passes : 2 ,
422
+ } ,
423
+ format : {
424
+ comments : false ,
425
+ } ,
426
+ } ,
427
+ } ) ,
428
+ ] ,
429
+ }
430
+ : {
431
+ minimize : false ,
432
+ minimizer : [ ] ,
433
+ } ) ,
434
+ } ,
407
435
plugins : [
408
436
...( defaultConfig . plugins ?? [ ] ) ,
409
437
new NgRspackPlugin ( {
0 commit comments