【问题标题】:can't build with Ionic2无法使用 Ionic2 构建
【发布时间】:2016-10-24 20:05:11
【问题描述】:

我正在开发 Ionic2 应用程序,现在我想进行构建,但出现错误。

ionic info 返回:

Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.1
Ionic App Lib Version: 2.1.1
Ionic App Scripts Version: 0.0.36
OS: Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS 
Node Version: v4.2.6

我的 ma​​in.prod.ts 看起来像这样:

import { platformBrowser } from '@angular/platform-browser';
import { enableProdMode } from '@angular/core';

import { AppModuleNgFactory } from './app.module.ngfactory';

enableProdMode();
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

每次我尝试做ionic build android 我都会得到这个:

 bundle failed: Could not resolve './app.module.ngfactory' from /home/xxx/Desktop/myApp/.tmp/app/main.prod.ts 
ionic-app-script task: "build"

【问题讨论】:

  • 你的 package.json 是什么样的?

标签: ionic-framework ionic2


【解决方案1】:

Ionic2 使用 Angular2 的 Ahead-Of-Time-Compilation(通过使用 ngc)。 ngc 所做的是从您的普通应用程序模块中创建一个工厂,并通过将 NgFactory 添加到模块的名称来重命名此模块。

因此,例如,如果您有一个名为 MySuperAwesomeApp 的应用程序模块,ngc 会创建一个导出名为 MySuperAwesomeAppNgFactory 的工厂的文件。并且在构建您的 Android 应用程序时,ionic 将搜索 MySuperAwesomeAppNgFactory 而不是 MySuperAwesomeApp,因此在找不到时会抛出错误。

在您的情况下,我假设您重命名了您的应用模块(位于 ./app.module.ts),但没有更改 ma​​in.prod.ts 中的工厂名称。

如需进一步了解 AOT,请参阅Angular2 AOT Doc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 2016-07-11
    相关资源
    最近更新 更多