@@ -484,6 +484,7 @@ async function getTarballStream(tarballUrl, pkg, options) {
484484 stream . on ( 'data' , chunk => {
485485 options . totalTarballSize += chunk . length ;
486486 } ) ;
487+ stream . tarballUrl = tarballUrl ;
487488 return stream ;
488489 }
489490 } catch ( err ) {
@@ -512,6 +513,7 @@ async function getTarballStream(tarballUrl, pkg, options) {
512513 result . res . on ( 'data' , chunk => {
513514 options . totalTarballSize += chunk . length ;
514515 } ) ;
516+ result . res . tarballUrl = tarballUrl ;
515517 return result . res ;
516518 }
517519
@@ -590,6 +592,7 @@ async function getTarballStream(tarballUrl, pkg, options) {
590592
591593 const stream = fs . createReadStream ( tarballFile ) ;
592594 stream . tarballFile = tarballFile ;
595+ stream . tarballUrl = tarballUrl ;
593596 return stream ;
594597}
595598
@@ -698,6 +701,7 @@ function checkShasumAndUngzip(ungzipDir, readstream, pkg, useTarFormat, options)
698701 return new Promise ( ( resolve , reject ) => {
699702 const shasum = pkg . dist . shasum ;
700703 const hash = crypto . createHash ( 'sha1' ) ;
704+ let tarballSize = 0 ;
701705 const opts = {
702706 cwd : ungzipDir ,
703707 strip : 1 ,
@@ -760,12 +764,15 @@ function checkShasumAndUngzip(ungzipDir, readstream, pkg, useTarFormat, options)
760764 resolve ( ) ;
761765 }
762766
763- readstream . on ( 'data' , buf => hash . update ( buf ) ) ;
767+ readstream . on ( 'data' , buf => {
768+ tarballSize += buf . length ;
769+ hash . update ( buf ) ;
770+ } ) ;
764771 readstream . on ( 'end' , ( ) => {
765772 // this will be fire before extracter `env` event fire.
766773 const realShasum = hash . digest ( 'hex' ) ;
767774 if ( realShasum !== shasum ) {
768- const err = new Error ( `real sha1:${ realShasum } not equal to remote:${ shasum } ` ) ;
775+ const err = new Error ( `real sha1:${ realShasum } not equal to remote:${ shasum } , download url ${ readstream . tarballUrl || '' } , download size ${ tarballSize } ` ) ;
769776 err . name = 'ShasumNotMatchError' ;
770777 handleCallback ( err ) ;
771778 }
0 commit comments