@@ -22,17 +22,39 @@ export class PrepareController extends EventEmitter {
2222 private $logger : ILogger ,
2323 private $nodeModulesDependenciesBuilder : INodeModulesDependenciesBuilder ,
2424 private $platformsDataService : IPlatformsDataService ,
25+ private $pluginsService : IPluginsService ,
2526 private $prepareNativePlatformService : IPrepareNativePlatformService ,
2627 private $projectChangesService : IProjectChangesService ,
2728 private $projectDataService : IProjectDataService ,
2829 private $webpackCompilerService : IWebpackCompilerService ,
2930 private $watchIgnoreListService : IWatchIgnoreListService
3031 ) { super ( ) ; }
3132
32- @performanceLog ( )
33- @hook ( "prepare" )
3433 public async prepare ( prepareData : IPrepareData ) : Promise < IPrepareResultData > {
3534 const projectData = this . $projectDataService . getProjectData ( prepareData . projectDir ) ;
35+
36+ await this . $pluginsService . ensureAllDependenciesAreInstalled ( projectData ) ;
37+
38+ return this . prepareCore ( prepareData , projectData ) ;
39+ }
40+
41+ public async stopWatchers ( projectDir : string , platform : string ) : Promise < void > {
42+ const platformLowerCase = platform . toLowerCase ( ) ;
43+
44+ if ( this . watchersData && this . watchersData [ projectDir ] && this . watchersData [ projectDir ] [ platformLowerCase ] && this . watchersData [ projectDir ] [ platformLowerCase ] . nativeFilesWatcher ) {
45+ this . watchersData [ projectDir ] [ platformLowerCase ] . nativeFilesWatcher . close ( ) ;
46+ this . watchersData [ projectDir ] [ platformLowerCase ] . nativeFilesWatcher = null ;
47+ }
48+
49+ if ( this . watchersData && this . watchersData [ projectDir ] && this . watchersData [ projectDir ] [ platformLowerCase ] && this . watchersData [ projectDir ] [ platformLowerCase ] . hasWebpackCompilerProcess ) {
50+ await this . $webpackCompilerService . stopWebpackCompiler ( platform ) ;
51+ this . watchersData [ projectDir ] [ platformLowerCase ] . hasWebpackCompilerProcess = false ;
52+ }
53+ }
54+
55+ @performanceLog ( )
56+ @hook ( "prepare" )
57+ private async prepareCore ( prepareData : IPrepareData , projectData : IProjectData ) : Promise < IPrepareResultData > {
3658 this . $bundleValidatorHelper . validate ( projectData , "1.0.0" ) ;
3759
3860 await this . $platformController . addPlatformIfNeeded ( prepareData ) ;
@@ -57,20 +79,6 @@ export class PrepareController extends EventEmitter {
5779 return result ;
5880 }
5981
60- public async stopWatchers ( projectDir : string , platform : string ) : Promise < void > {
61- const platformLowerCase = platform . toLowerCase ( ) ;
62-
63- if ( this . watchersData && this . watchersData [ projectDir ] && this . watchersData [ projectDir ] [ platformLowerCase ] && this . watchersData [ projectDir ] [ platformLowerCase ] . nativeFilesWatcher ) {
64- this . watchersData [ projectDir ] [ platformLowerCase ] . nativeFilesWatcher . close ( ) ;
65- this . watchersData [ projectDir ] [ platformLowerCase ] . nativeFilesWatcher = null ;
66- }
67-
68- if ( this . watchersData && this . watchersData [ projectDir ] && this . watchersData [ projectDir ] [ platformLowerCase ] && this . watchersData [ projectDir ] [ platformLowerCase ] . hasWebpackCompilerProcess ) {
69- await this . $webpackCompilerService . stopWebpackCompiler ( platform ) ;
70- this . watchersData [ projectDir ] [ platformLowerCase ] . hasWebpackCompilerProcess = false ;
71- }
72- }
73-
7482 @hook ( "watch" )
7583 private async startWatchersWithPrepare ( platformData : IPlatformData , projectData : IProjectData , prepareData : IPrepareData ) : Promise < IPrepareResultData > {
7684 if ( ! this . watchersData [ projectData . projectDir ] ) {
0 commit comments