@@ -100,7 +100,8 @@ const revWebAssets = {
100
100
// assets manifest detail.
101
101
const hashLen = 8 ;
102
102
const brokenWindows = / $ \r \n / gm;
103
- const contents = fs . readFileSync ( detail . origin ) . toString ( ) . replace ( brokenWindows , '\n' ) ;
103
+ const normalize = ( buffer : Buffer ) => buffer . toString ( ) . replace ( brokenWindows , '\n' ) ;
104
+ const contents = normalize ( fs . readFileSync ( detail . origin ) ) ;
104
105
const hash = crypto . createHash ( 'md5' ) . update ( contents ) . digest ( 'hex' ) ;
105
106
detail . bytes = contents . length ;
106
107
detail . hash = hash . substring ( 0 , hashLen ) ;
@@ -152,11 +153,12 @@ const revWebAssets = {
152
153
const metaPattern = / ( < m e t a \s .* c o n t e n t = [ ' " ] ? ) ( [ ^ " ' > \s ] * ) ( [ ' " ] ? [ ^ < ] * > ) / ig
153
154
const process = ( detail : ManifestDetail ) => {
154
155
const content = fs . readFileSync ( detail . origin , 'utf-8' ) ;
156
+ const calcNext = ( ) => revWebAssets . hashAssetPath ( manifest , detail , settings ) ;
155
157
const hashedContent = content
156
- . replace ( hrefPattern , revWebAssets . hashAssetPath ( manifest , detail , settings ) )
157
- . replace ( srcPattern , revWebAssets . hashAssetPath ( manifest , detail , settings ) )
158
- . replace ( metaPattern , revWebAssets . hashAssetPath ( manifest , detail , settings ) ) ;
159
- detail . destPath = detail . destFolder + '/' + detail . filename ;
158
+ . replace ( hrefPattern , calcNext ( ) )
159
+ . replace ( srcPattern , calcNext ( ) )
160
+ . replace ( metaPattern , calcNext ( ) ) ;
161
+ detail . destPath = ` ${ detail . destFolder } / ${ detail . filename } ` ;
160
162
fs . mkdirSync ( detail . destFolder , { recursive : true } ) ;
161
163
fs . writeFileSync ( detail . destPath , hashedContent ) ;
162
164
} ;
@@ -167,10 +169,10 @@ const revWebAssets = {
167
169
// url(../background.jpg)
168
170
const urlPattern = / ( u r l \( [ " ' ] ? ) ( [ ^ ) ( ' " ] * ) ( [ " ' ] ? \) ) / ig
169
171
const process = ( detail : ManifestDetail ) => {
170
- const content = fs . readFileSync ( detail . origin , 'utf-8' ) ;
171
- const hashedContent = content
172
- . replace ( urlPattern , revWebAssets . hashAssetPath ( manifest , detail , settings ) ) ;
173
- detail . destPath = detail . destFolder + '/' + ( detail . hashedFilename ?? detail . filename ) ;
172
+ const content = fs . readFileSync ( detail . origin , 'utf-8' ) ;
173
+ const calcNext = ( ) => revWebAssets . hashAssetPath ( manifest , detail , settings ) ;
174
+ const hashedContent = content . replace ( urlPattern , calcNext ( ) ) ;
175
+ detail . destPath = ` ${ detail . destFolder } / ${ detail . hashedFilename ?? detail . filename } ` ;
174
176
fs . mkdirSync ( detail . destFolder , { recursive : true } ) ;
175
177
fs . writeFileSync ( detail . destPath , hashedContent ) ;
176
178
} ;
@@ -179,7 +181,7 @@ const revWebAssets = {
179
181
180
182
copyAssets ( manifest : ManifestDetail [ ] ) {
181
183
const process = ( detail : ManifestDetail ) => {
182
- detail . destPath = detail . destFolder + '/' + ( detail . hashedFilename ?? detail . filename ) ;
184
+ detail . destPath = ` ${ detail . destFolder } / ${ detail . hashedFilename ?? detail . filename } ` ;
183
185
fs . mkdirSync ( detail . destFolder , { recursive : true } ) ;
184
186
fs . copyFileSync ( detail . origin , detail . destPath ) ;
185
187
} ;
0 commit comments