我正在尝试使用离线编译器使用Angular2 RC5提前编译我的应用程序。
我可以成功将代码编译到'dist'目录。要做到这一点,我正在使用这样的main.ts进行编译:
import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';
import { enableProdMode } from '@angular/core';
enableProdMode();
bootstrap(AppComponent);
然后将dist / main.js修改为:
var platform_browser_1 = require('@angular/platform-browser');
var app_module_ngfactory_1 = require('./app/app.module.ngfactory');
platform_browser_1.platformBrowser().bootstrapModuleFactory(app_module_ngfactory_1.AppModuleNgFactory);
否则我收到一条错误,说找不到app.module.ngfactory,因为它尚未生成。
编译还会生成'dist'的'app'子目录,其中包含我的组件和app模块的所有ngfactory文件。但是,仅生成.ts文件。因此,当我尝试在浏览器中运行应用程序时,出现如下错误:
错误:(SystemJS)XHR错误(404 Not Found)加载 https://mysiteaddress.com/dist/app/app.module.ngfactory.js
所以这就是我困惑的地方。如何生成app.module.ngfactory.js?
我也试过基于this帖子以各种方式修改main.ts,但后来发现我无法重新编译,因为我的app.module.ngfactory文件位于不属于的目录中应用程序的根目录。 Tsc也产生了错误
app / chat-operations.component.ngfactory.ts(377,27):错误TS2341: 属性'volume_title'是私有的,只能在课堂上访问 'ChatOperationsComponent'。
有人可以解释一下我的错误吗?任何帮助都非常感谢。
答案 0 :(得分:1)
我设法让它最终工作(减少加载时间超过6秒),删除所有用途' private'在组件中的构造函数之前声明变量时。这导致如上所述的许多错误。声明变量私有似乎在服务和指令中是可以接受的。这是唯一的主要障碍。还是不知道为什么......