在前端代码库中共享 main.ts 文件以服务于 Web 和移动客户端

Share main.ts file in a front-end code base to serve web and mobile clients

我正在尝试为前端基于 angular2 的应用程序设计一个合适的文件夹和代码结构,该应用程序将包含 Android/iOS 视图的 nativescript 部分,以及常规的 DOM 内容对于 Web 浏览器频道。

从 NativeScript 样板文件开始,我得到一个 main.ts 文件,如下所示:

import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { platformNativeScriptDynamic } from "nativescript-angular/platform";
import { NativeScriptModule } from "nativescript-angular/nativescript.module";

import { AppComponent } from "./app.component";

@NgModule({
  declarations: [AppComponent],
  bootstrap: [AppComponent],
  imports: [NativeScriptModule],
  schemas: [NO_ERRORS_SCHEMA]
})
export class AppModule {}

platformNativeScriptDynamic().bootstrapModule(AppModule);

你看,platformNativeScriptDynamic 直接让这个文件变得非常非常固执己见,而不是常规和通常的 platformBrowserDynamic。由于我只想为所有通道使用一个根文件夹(这样我就可以共享模型和服务),我该如何设计一个 main.ts 文件(或我需要的任何其他文件),以便一方面 ng serve 知道去哪里,而另一方面 tns run android 也知道如何 运行 移动应用程序?

看来这种方法很绕。我认为它可以使用 environment.ts--environment 命令行选项,但是我发现(并且更喜欢)一个可以在内部处理所有这些的插件:

https://github.com/wwwalkerrun/nativescript-ngx-magic

缺点是它将nativescript插入到ng2-cli项目中。我想如果你想做相反的事情,你必须 fiddle 稍微。