@@ -170,11 +170,7 @@ class MiniCssExtractPlugin {
170
170
renderedModules ,
171
171
compilation . runtimeTemplate . requestShortener
172
172
) ,
173
- filenameTemplate : this . getFilename (
174
- chunk ,
175
- this . options . filename ,
176
- this . options . processedFilename
177
- ) ,
173
+ filenameTemplate : this . getFilename ( chunk , this . options . filename ) ,
178
174
pathOptions : {
179
175
chunk,
180
176
contentHashType : NS ,
@@ -200,8 +196,7 @@ class MiniCssExtractPlugin {
200
196
) ,
201
197
filenameTemplate : this . getFilename (
202
198
chunk ,
203
- this . options . chunkFilename ,
204
- this . options . processedChunkFilename
199
+ this . options . chunkFilename
205
200
) ,
206
201
pathOptions : {
207
202
chunk,
@@ -267,62 +262,69 @@ class MiniCssExtractPlugin {
267
262
const chunkMap = this . getCssChunkObject ( chunk ) ;
268
263
if ( Object . keys ( chunkMap ) . length > 0 ) {
269
264
const chunkMaps = chunk . getChunkMaps ( ) ;
270
- const linkHrefPath = mainTemplate . getAssetPath (
271
- JSON . stringify (
272
- this . getFilename (
273
- chunk ,
274
- this . options . chunkFilename ,
275
- this . options . processedChunkFilename
276
- )
277
- ) ,
278
- {
279
- hash : `" + ${ mainTemplate . renderCurrentHashCode ( hash ) } + "` ,
280
- hashWithLength : ( length ) =>
281
- `" + ${ mainTemplate . renderCurrentHashCode ( hash , length ) } + "` ,
282
- chunk : {
283
- id : '" + chunkId + "' ,
284
- hash : `" + ${ JSON . stringify ( chunkMaps . hash ) } [chunkId] + "` ,
285
- hashWithLength ( length ) {
286
- const shortChunkHashMap = Object . create ( null ) ;
287
- for ( const chunkId of Object . keys ( chunkMaps . hash ) ) {
288
- if ( typeof chunkMaps . hash [ chunkId ] === 'string' ) {
289
- shortChunkHashMap [ chunkId ] = chunkMaps . hash [
290
- chunkId
291
- ] . substring ( 0 , length ) ;
292
- }
293
- }
294
- return `" + ${ JSON . stringify (
295
- shortChunkHashMap
296
- ) } [chunkId] + "`;
297
- } ,
298
- contentHash : {
299
- [ NS ] : `" + ${ JSON . stringify (
300
- chunkMaps . contentHash [ NS ]
301
- ) } [chunkId] + "`,
302
- } ,
303
- contentHashWithLength : {
304
- [ NS ] : ( length ) => {
305
- const shortContentHashMap = { } ;
306
- const contentHash = chunkMaps . contentHash [ NS ] ;
307
- for ( const chunkId of Object . keys ( contentHash ) ) {
308
- if ( typeof contentHash [ chunkId ] === 'string' ) {
309
- shortContentHashMap [ chunkId ] = contentHash [
265
+ let linkHrefPath ;
266
+ try {
267
+ linkHrefPath = mainTemplate . getAssetPath (
268
+ JSON . stringify (
269
+ this . getFilename ( chunk , this . options . chunkFilename )
270
+ ) ,
271
+ {
272
+ hash : `" + ${ mainTemplate . renderCurrentHashCode ( hash ) } + "` ,
273
+ hashWithLength : ( length ) =>
274
+ `" + ${ mainTemplate . renderCurrentHashCode (
275
+ hash ,
276
+ length )
277
+ } + "`,
278
+ chunk : {
279
+ id : '" + chunkId + "' ,
280
+ hash : `" + ${ JSON . stringify ( chunkMaps . hash ) } [chunkId] + "` ,
281
+ hashWithLength ( length ) {
282
+ const shortChunkHashMap = Object . create ( null ) ;
283
+ for ( const chunkId of Object . keys ( chunkMaps . hash ) ) {
284
+ if ( typeof chunkMaps . hash [ chunkId ] === 'string' ) {
285
+ shortChunkHashMap [ chunkId ] = chunkMaps . hash [
310
286
chunkId
311
287
] . substring ( 0 , length ) ;
312
288
}
313
289
}
314
290
return `" + ${ JSON . stringify (
315
- shortContentHashMap
291
+ shortChunkHashMap
316
292
) } [chunkId] + "`;
317
293
} ,
294
+ contentHash : {
295
+ [ NS ] : `" + ${ JSON . stringify (
296
+ chunkMaps . contentHash [ NS ]
297
+ ) } [chunkId] + "`,
298
+ } ,
299
+ contentHashWithLength : {
300
+ [ NS ] : ( length ) => {
301
+ const shortContentHashMap = { } ;
302
+ const contentHash = chunkMaps . contentHash [ NS ] ;
303
+ for ( const chunkId of Object . keys ( contentHash ) ) {
304
+ if ( typeof contentHash [ chunkId ] === 'string' ) {
305
+ shortContentHashMap [ chunkId ] = contentHash [
306
+ chunkId
307
+ ] . substring ( 0 , length ) ;
308
+ }
309
+ }
310
+ return `" + ${ JSON . stringify (
311
+ shortContentHashMap
312
+ ) } [chunkId] + "`;
313
+ } ,
314
+ } ,
315
+ name : `" + (${ JSON . stringify (
316
+ chunkMaps . name
317
+ ) } [chunkId]||chunkId) + "`,
318
318
} ,
319
- name : `" + (${ JSON . stringify (
320
- chunkMaps . name
321
- ) } [chunkId]||chunkId) + "`,
322
- } ,
323
- contentHashType : NS ,
324
- }
325
- ) ;
319
+ contentHashType : NS ,
320
+ }
321
+ ) ;
322
+ } catch ( err ) {
323
+ throw new Error (
324
+ `Couldn't stringify JSON for filename provided as function: ${ err } `
325
+ ) ;
326
+ }
327
+
326
328
return Template . asString ( [
327
329
source ,
328
330
'' ,
@@ -380,17 +382,8 @@ class MiniCssExtractPlugin {
380
382
} ) ;
381
383
}
382
384
383
- getFilename ( chunk , filename , processedFilename ) {
384
- if ( ! processedFilename ) {
385
- processedFilename = this . isFunction ( filename )
386
- ? filename ( chunk )
387
- : filename ;
388
- }
389
- return processedFilename ;
390
- }
391
-
392
- isFunction ( functionToCheck ) {
393
- return typeof functionToCheck === 'function' ;
385
+ getFilename ( chunk , filename ) {
386
+ return typeof filename === 'function' ? filename ( chunk ) : filename ;
394
387
}
395
388
396
389
getCssChunkObject ( mainChunk ) {
0 commit comments