File tree Expand file tree Collapse file tree 2 files changed +60
-8
lines changed Expand file tree Collapse file tree 2 files changed +60
-8
lines changed Original file line number Diff line number Diff line change @@ -467,8 +467,19 @@ var Project = function () {
467
467
function afterPack ( ) {
468
468
async . series ( self . packCallbacks . map ( function ( packCallback ) {
469
469
return function ( callback ) {
470
- packCallback ( opt , stats ) ;
471
- callback ( null ) ;
470
+ var isAsync = false ;
471
+
472
+ // 支持异步调用
473
+ packCallback . bind ( {
474
+ async : function async ( ) {
475
+ isAsync = true ;
476
+ return callback ;
477
+ }
478
+ } ) ( opt , stats ) ;
479
+
480
+ if ( ! isAsync ) {
481
+ callback ( null ) ;
482
+ }
472
483
} ;
473
484
} ) , function ( err ) {
474
485
var statsInfo = stats . toJson ( { errorDetails : false } ) ;
@@ -511,8 +522,23 @@ var Project = function () {
511
522
512
523
async . series ( this . beforePackCallbacks . map ( function ( beforePackItem ) {
513
524
return function ( callback ) {
514
- beforePackItem ( ) ;
515
- callback ( null ) ;
525
+ // 支持异步调用
526
+ if ( beforePackItem . length === 2 ) {
527
+ // 支持旧的 beforePackCallbacks 形式
528
+ beforePackItem ( callback , opt ) ;
529
+ } else {
530
+ var isAsync = false ;
531
+ beforePackItem . bind ( {
532
+ async : function async ( ) {
533
+ isAsync = true ;
534
+ return callback ;
535
+ }
536
+ } ) ( opt ) ;
537
+
538
+ if ( ! isAsync ) {
539
+ callback ( null ) ;
540
+ }
541
+ }
516
542
} ;
517
543
} ) , function ( err ) {
518
544
compilerProcess ( ) ;
Original file line number Diff line number Diff line change @@ -459,8 +459,19 @@ class Project {
459
459
async . series (
460
460
self . packCallbacks . map ( packCallback => {
461
461
return function ( callback ) {
462
- packCallback ( opt , stats ) ;
463
- callback ( null ) ;
462
+ let isAsync = false ;
463
+
464
+ // 支持异步调用
465
+ packCallback . bind ( {
466
+ async : function ( ) {
467
+ isAsync = true ;
468
+ return callback ;
469
+ }
470
+ } ) ( opt , stats ) ;
471
+
472
+ if ( ! isAsync ) {
473
+ callback ( null ) ;
474
+ }
464
475
} ;
465
476
} ) ,
466
477
err => {
@@ -514,8 +525,23 @@ class Project {
514
525
async . series (
515
526
this . beforePackCallbacks . map ( ( beforePackItem ) => {
516
527
return function ( callback ) {
517
- beforePackItem ( ) ;
518
- callback ( null ) ;
528
+ // 支持异步调用
529
+ if ( beforePackItem . length === 2 ) {
530
+ // 支持旧的 beforePackCallbacks 形式
531
+ beforePackItem ( callback , opt ) ;
532
+ } else {
533
+ let isAsync = false ;
534
+ beforePackItem . bind ( {
535
+ async : function ( ) {
536
+ isAsync = true ;
537
+ return callback ;
538
+ }
539
+ } ) ( opt ) ;
540
+
541
+ if ( ! isAsync ) {
542
+ callback ( null ) ;
543
+ }
544
+ }
519
545
} ;
520
546
} ) ,
521
547
err => {
You can’t perform that action at this time.
0 commit comments