@@ -67,25 +67,30 @@ class UglifyJsPlugin {
6767 return new Error ( `${ file } from UglifyJs\n${ err . message } ` ) ;
6868 }
6969
70- static buildWarnings ( warnings , file , sourceMap , warningsFilter , requestShortener ) {
71- if ( ! sourceMap ) {
72- return warnings ;
70+ static buildWarning ( warning , file , sourceMap , warningsFilter , requestShortener ) {
71+ if ( ! file || ! sourceMap ) {
72+ return warning ;
7373 }
74- return warnings . reduce ( ( accWarnings , warning ) => {
75- const match = warningRegex . exec ( warning ) ;
76- const line = + match [ 1 ] ;
77- const column = + match [ 2 ] ;
78- const original = sourceMap . originalPositionFor ( {
79- line,
80- column,
81- } ) ;
8274
83- if ( original && original . source && original . source !== file && warningsFilter ( original . source ) ) {
84- accWarnings . push ( `${ warning . replace ( warningRegex , '' ) } [${ requestShortener . shorten ( original . source ) } :${ original . line } ,${ original . column } ]` ) ;
75+ const match = warningRegex . exec ( warning ) ;
76+ const line = + match [ 1 ] ;
77+ const column = + match [ 2 ] ;
78+ const original = sourceMap . originalPositionFor ( {
79+ line,
80+ column,
81+ } ) ;
82+
83+ let warningMessage = null ;
84+
85+ if ( warningsFilter ( original . source ) ) {
86+ warningMessage = warning . replace ( warningRegex , '' ) ;
87+
88+ if ( original && original . source && original . source !== file ) {
89+ warningMessage += `[${ requestShortener . shorten ( original . source ) } :${ original . line } ,${ original . column } ]` ;
8590 }
91+ }
8692
87- return accWarnings ;
88- } , [ ] ) ;
93+ return warningMessage ;
8994 }
9095
9196 apply ( compiler ) {
@@ -257,20 +262,20 @@ class UglifyJsPlugin {
257262 uglifiedAssets . add ( compilation . assets [ file ] = outputSource ) ;
258263
259264 // Handling warnings
260- if ( warnings ) {
261- const warnArr = UglifyJsPlugin . buildWarnings (
262- warnings ,
263- file ,
264- sourceMap ,
265- this . options . warningsFilter ,
266- requestShortener ,
267- ) ;
268-
269- if ( warnArr . length > 0 ) {
270- compilation . warnings . push (
271- new Error ( `${ file } from UglifyJs\n${ warnArr . join ( '\n' ) } ` ) ,
265+ if ( warnings && warnings . length > 0 ) {
266+ warnings . forEach ( ( warning ) => {
267+ const builtWarning = UglifyJsPlugin . buildWarning (
268+ warning ,
269+ file ,
270+ sourceMap ,
271+ this . options . warningsFilter ,
272+ requestShortener ,
272273 ) ;
273- }
274+
275+ if ( builtWarning ) {
276+ compilation . warnings . push ( builtWarning ) ;
277+ }
278+ } ) ;
274279 }
275280 } ) ;
276281
0 commit comments