@@ -22,17 +22,39 @@ export class PrepareController extends EventEmitter {
22
22
private $logger : ILogger ,
23
23
private $nodeModulesDependenciesBuilder : INodeModulesDependenciesBuilder ,
24
24
private $platformsDataService : IPlatformsDataService ,
25
+ private $pluginsService : IPluginsService ,
25
26
private $prepareNativePlatformService : IPrepareNativePlatformService ,
26
27
private $projectChangesService : IProjectChangesService ,
27
28
private $projectDataService : IProjectDataService ,
28
29
private $webpackCompilerService : IWebpackCompilerService ,
29
30
private $watchIgnoreListService : IWatchIgnoreListService
30
31
) { super ( ) ; }
31
32
32
- @performanceLog ( )
33
- @hook ( "prepare" )
34
33
public async prepare ( prepareData : IPrepareData ) : Promise < IPrepareResultData > {
35
34
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 > {
36
58
this . $bundleValidatorHelper . validate ( projectData , "1.0.0" ) ;
37
59
38
60
await this . $platformController . addPlatformIfNeeded ( prepareData ) ;
@@ -57,20 +79,6 @@ export class PrepareController extends EventEmitter {
57
79
return result ;
58
80
}
59
81
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
-
74
82
@hook ( "watch" )
75
83
private async startWatchersWithPrepare ( platformData : IPlatformData , projectData : IProjectData , prepareData : IPrepareData ) : Promise < IPrepareResultData > {
76
84
if ( ! this . watchersData [ projectData . projectDir ] ) {
0 commit comments