@@ -14,7 +14,6 @@ var Module = require("./Module");
1414var ArrayMap = require ( "./ArrayMap" ) ;
1515var Chunk = require ( "./Chunk" ) ;
1616var Stats = require ( "./Stats" ) ;
17- var Template = require ( "./Template" ) ;
1817var MainTemplate = require ( "./MainTemplate" ) ;
1918var ChunkTemplate = require ( "./ChunkTemplate" ) ;
2019var HotUpdateChunkTemplate = require ( "./HotUpdateChunkTemplate" ) ;
@@ -723,7 +722,7 @@ Compilation.prototype.createChunkAssets = function createChunkAssets() {
723722 var module = this . modules [ i ] ;
724723 if ( module . assets ) {
725724 Object . keys ( module . assets ) . forEach ( function ( name ) {
726- var file = name . replace ( Template . REGEXP_HASH , this . hash ) ;
725+ var file = this . getPath ( name ) ;
727726 this . assets [ file ] = module . assets [ name ] ;
728727 this . applyPlugins ( "module-asset" , module , file ) ;
729728 } , this ) ;
@@ -755,28 +754,30 @@ Compilation.prototype.createChunkAssets = function createChunkAssets() {
755754 }
756755 }
757756 this . assets [
758- file = filenameTemplate
759- . replace ( Template . REGEXP_HASH , this . hash )
760- . replace ( Template . REGEXP_CHUNKHASH , chunk . renderedHash )
761- . replace ( Template . REGEXP_ID , chunk . id )
762- . replace ( Template . REGEXP_NAME , chunk . name || chunk . id )
757+ file = this . getPath ( filenameTemplate , {
758+ chunk : chunk
759+ } )
763760 ] = source ;
764761 chunk . files . push ( file ) ;
765762 this . applyPlugins ( "chunk-asset" , chunk , file ) ;
766763 if ( chunk . id !== 0 && namedChunkFilename && chunk . name ) {
767764 this . assets [
768- file = namedChunkFilename
769- . replace ( Template . REGEXP_CHUNKHASH , chunk . renderedHash )
770- . replace ( Template . REGEXP_HASH , this . hash )
771- . replace ( Template . REGEXP_ID , chunk . id )
772- . replace ( Template . REGEXP_NAME , chunk . name || chunk . id )
765+ file = this . getPath ( namedChunkFilename , {
766+ chunk : chunk
767+ } )
773768 ] = source ;
774769 chunk . files . push ( file ) ;
775770 this . applyPlugins ( "chunk-asset" , chunk , file ) ;
776771 }
777772 }
778773} ;
779774
775+ Compilation . prototype . getPath = function ( filename , data ) {
776+ data = data || { } ;
777+ data . hash = data . hash || this . hash ;
778+ return this . mainTemplate . applyPluginsWaterfall ( "asset-path" , filename , data ) ;
779+ } ;
780+
780781Compilation . prototype . getStats = function ( ) {
781782 return new Stats ( this ) ;
782783} ;
0 commit comments