@@ -61,13 +61,13 @@ exports.GenerateBundleStarterPlugin.prototype = {
61
61
} ;
62
62
63
63
exports . getEntryModule = function ( ) {
64
- var projectDir = path . dirname ( path . dirname ( __dirname ) ) ;
65
- var appPackageJsonPath = path . join ( projectDir , "app" , "package.json" ) ;
66
- var appPackageJson = JSON . parse ( fs . readFileSync ( appPackageJsonPath , "utf8" ) ) ;
67
- if ( ! appPackageJson . main ) {
64
+ const maybePackageJsonEntry = getPackageJsonEntry ( ) ;
65
+ if ( ! maybePackageJsonEntry ) {
68
66
throw new Error ( "app/package.json must contain a `main` attribute." ) ;
69
67
}
70
- return appPackageJson . main . replace ( / \. j s $ / i, "" ) ;
68
+
69
+ const maybeAotEntry = getAotEntry ( maybePackageJsonEntry ) ;
70
+ return maybeAotEntry || maybePackageJsonEntry ;
71
71
} ;
72
72
73
73
exports . getAppPath = function ( platform ) {
@@ -108,3 +108,29 @@ exports.uglifyMangleExcludes = [
108
108
"TimePicker" ,
109
109
"View" ,
110
110
] ;
111
+
112
+ function getPackageJsonEntry ( ) {
113
+ const packageJsonSource = getAppPackageJsonSource ( ) ;
114
+ const entry = packageJsonSource . main ;
115
+
116
+ return entry ? entry . replace ( / \. j s $ / i, "" ) : null ;
117
+ }
118
+
119
+ function getAppPackageJsonSource ( ) {
120
+ const projectDir = getProjectDir ( ) ;
121
+ const appPackageJsonPath = path . join ( projectDir , "app" , "package.json" ) ;
122
+
123
+ return JSON . parse ( fs . readFileSync ( appPackageJsonPath , "utf8" ) ) ;
124
+ }
125
+
126
+ function getAotEntry ( entry ) {
127
+ const aotEntry = `${ entry } .aot.ts` ;
128
+ const projectDir = getProjectDir ( ) ;
129
+ const aotEntryPath = path . join ( projectDir , "app" , aotEntry ) ;
130
+
131
+ return fs . existsSync ( aotEntryPath ) ? aotEntry : null ;
132
+ }
133
+
134
+ function getProjectDir ( ) {
135
+ return path . dirname ( path . dirname ( __dirname ) ) ;
136
+ }
0 commit comments