Skip to content

Commit e8b457f

Browse files
sis0k0Alexander Vakrilov
authored andcommitted
feat: Add AoT compilation with webpack (#215)
Added AoT/Webpack support and updates it to NativeScript 2.5 Fixes #213
1 parent b36fdac commit e8b457f

18 files changed

Lines changed: 320 additions & 40 deletions

app/app.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import url("~/platform.css");
1+
@import url("./platform.css");
22

33
Page {
44
font-size: 15;

app/app.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
2-
import { NgModule } from "@angular/core";
2+
import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
33
import { NativeScriptHttpModule } from "nativescript-angular/http";
44
import { NativeScriptRouterModule } from "nativescript-angular/router";
55

@@ -29,6 +29,7 @@ setStatusBarColors();
2929
declarations: [
3030
AppComponent,
3131
],
32-
bootstrap: [AppComponent]
32+
bootstrap: [AppComponent],
33+
schemas: [NO_ERRORS_SCHEMA]
3334
})
3435
export class AppModule { }

app/groceries/groceries.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ import { LoginService, alert } from "../shared";
1212

1313
@Component({
1414
selector: "gr-groceries",
15-
templateUrl: "groceries/groceries.component.html",
16-
styleUrls: ["groceries/groceries-common.css", "groceries/groceries.component.css"],
15+
moduleId: module.id,
16+
templateUrl: "./groceries.component.html",
17+
styleUrls: ["./groceries-common.css", "./groceries.component.css"],
1718
providers: [GroceryService]
1819
})
1920
export class GroceriesComponent implements OnInit {

app/groceries/groceries.module.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { NativeScriptModule } from "nativescript-angular/platform";
1+
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
22
import { NativeScriptFormsModule } from "nativescript-angular/forms";
3-
import { NgModule } from "@angular/core";
3+
import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
44
import { groceriesRouting } from "./groceries.routing";
55
import { GroceriesComponent } from "./groceries.component";
66
import { GroceryListComponent } from "./grocery-list/grocery-list.component";
@@ -16,6 +16,7 @@ import { ItemStatusPipe } from "./grocery-list/item-status.pipe";
1616
GroceriesComponent,
1717
GroceryListComponent,
1818
ItemStatusPipe
19-
]
19+
],
20+
schemas: [NO_ERRORS_SCHEMA]
2021
})
2122
export class GroceriesModule {}

app/groceries/grocery-list/grocery-list.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ declare var UIColor: any;
88

99
@Component({
1010
selector: "gr-grocery-list",
11-
templateUrl: "groceries/grocery-list/grocery-list.component.html",
12-
styleUrls: ["groceries/grocery-list/grocery-list.component.css"],
11+
moduleId: module.id,
12+
templateUrl: "./grocery-list.component.html",
13+
styleUrls: ["./grocery-list.component.css"],
1314
changeDetection: ChangeDetectionStrategy.OnPush
1415
})
1516
export class GroceryListComponent {

app/login/login.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ import { alert, LoginService, User } from "../shared";
1212

1313
@Component({
1414
selector: "gr-login",
15-
templateUrl: "login/login.component.html",
16-
styleUrls: ["login/login-common.css", "login/login.component.css"],
15+
moduleId: module.id,
16+
templateUrl: "./login.component.html",
17+
styleUrls: ["./login-common.css", "./login.component.css"],
1718
})
1819
export class LoginComponent implements OnInit {
1920
user: User;

app/login/login.module.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { NativeScriptModule } from "nativescript-angular/platform";
1+
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
22
import { NativeScriptFormsModule } from "nativescript-angular/forms";
3-
import { NgModule } from "@angular/core";
3+
import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
44

55
import { loginRouting } from "./login.routing";
66
import { LoginComponent } from "./login.component";
@@ -13,6 +13,7 @@ import { LoginComponent } from "./login.component";
1313
],
1414
declarations: [
1515
LoginComponent
16-
]
16+
],
17+
schemas: [NO_ERRORS_SCHEMA]
1718
})
1819
export class LoginModule { }

app/main.aot.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// this import should be first in order to load some required settings (like globals and reflect-metadata)
2+
import { platformNativeScript } from "nativescript-angular/platform-static";
3+
4+
import { AppModuleNgFactory } from "./app.module.ngfactory";
5+
6+
platformNativeScript().bootstrapModuleFactory(AppModuleNgFactory);

app/vendor-platform.android.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Resolve JavaScript classes that extend a Java class, and need to resolve
2+
// their JavaScript module from a bundled script. For example:
3+
// NativeScriptApplication, NativeScriptActivity, etc.
4+
//
5+
// This module gets bundled together with the rest of the app code and the
6+
// `require` calls get resolved to the correct bundling import call.
7+
//
8+
// At runtime the module gets loaded *before* the rest of the app code, so code
9+
// placed here needs to be careful about its dependencies.
10+
11+
require("application");
12+
require("ui/frame");
13+
require("ui/frame/activity");
14+
15+
if (global.TNS_WEBPACK) {
16+
global.__requireOverride = function (name, dir) {
17+
if (name === "./tns_modules/application/application.js") {
18+
return require("application");
19+
} else if (name === "./tns_modules/ui/frame/frame.js") {
20+
return require("ui/frame");
21+
} else if (name === "./tns_modules/ui/frame/activity.js") {
22+
return require("ui/frame/activity");
23+
}
24+
};
25+
}

app/vendor-platform.ios.ts

Whitespace-only changes.

0 commit comments

Comments
 (0)