Angular2 RC5提前编译器不生成工厂.js文件?

时间:2016-08-15 12:41:37

标签: angular

我正在尝试使用离线编译器使用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'。

有人可以解释一下我的错误吗?任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

我设法让它最终工作(减少加载时间超过6秒),删除所有用途' private'在组件中的构造函数之前声明变量时。这导致如上所述的许多错误。声明变量私有似乎在服务和指令中是可以接受的。这是唯一的主要障碍。还是不知道为什么......