簡體   English   中英

在Ionic 3中運行release命令時,Angular AoT構建失敗

[英]The Angular AoT build failed when running the release command in Ionic 3

我正在嘗試在Sony Z2智能手機上運行該應用程序。 我使用以下命令:

ionic build android --prod --release

我在控制台中收到如下錯誤:

打字稿錯誤C:/Users/fearcoder/Documents/natuurkundeformules/src/pages/circkelmovement/circkelmovement.ts中的CirckelmovementPage類型是以下兩個模塊聲明的一部分:C:/ Users / fearcoder / Documents / natuurkundeformules / src / app中的AppModule /app.module.ts和CirckelmovementPageModule在C:/ Users / fearcoder /Documents/natuurkundeformules/src/pages/circkelmovement/circkelmovement.module.ts中!

  Please consider moving CirckelmovementPage in 

C:/Users/fearcoder/Documents/natuurkundeformules/src/pages/circkelmovement/circkelmovement.ts到將模塊導入C:/Users/fearcoder/Documents/natuurkundeformules/src/app/app/app.module.ts和CirckelmovementPageModule的更高模塊在C:/Users/fearcoder/Documents/natuurkundeformules/src/pages/circkelmovement/circkelmovement.module.ts中。

  You can also create a new NgModule that exports and includes 

C:/Users/fearcoder/Documents/natuurkundeformules/src/pages/circkelmovement/circkelmovement.ts中的CirckelmovementPage,然后將該NgModule導入C:/Users/fearcoder/Documents/natuurkundeformules/src/app/app.module.ts中的AppModule中。

  and CirckelmovementPageModule in 

C:/用戶/ fearcoder /文檔/natuurkundeformules/src/pages/circkelmovement/circkelmovement.module.ts。

這些是文件

繞圈運動

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free';

@IonicPage()
@Component({
  selector: 'page-circkelmovement',
  templateUrl: 'circkelmovement.html',
})
export class CirckelmovementPage {

  ray:any;
  circulationtime:any;
  result:any;

  constructor(public navCtrl: NavController, public navParams: NavParams, private admob: AdMobFree) {
  } 

  ionViewDidLoad(){
    const bannerConfig: AdMobFreeBannerConfig = {
      isTesting: true,
      autoShow: true
    };
    this.admob.banner.config(bannerConfig);

    this.admob.banner.prepare()
      .then(() => {
        this.admob.banner.show()
      })
      .catch(e => console.log(e));
  }

  calculateWebSpeed(ray, circulationtime){      
    return this.result = "Baansnelheid: " + (2 * Math.PI * ray / circulationtime) + " m/s";    
  }
}

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { AdMobFree } from '@ionic-native/admob-free';
import { InAppBrowser } from '@ionic-native/in-app-browser';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { SpeedPage } from '../pages/speed/speed';
import { DistancePage } from '../pages/distance/distance';
import { TimePage } from '../pages/time/time';
import { WorkPage } from '../pages/work/work';
import { KinenergyPage } from '../pages/kinenergy/kinenergy';
import { GravityenergyPage } from '../pages/gravityenergy/gravityenergy';
import { GravityforcePage } from '../pages/gravityforce/gravityforce';
import { CirckelmovementPage } from '../pages/circkelmovement/circkelmovement';
import { ElectricityenergyPage } from '../pages/electricityenergy/electricityenergy';
import { LawohmPage } from '../pages/lawohm/lawohm';
import { LenslawPage } from '../pages/lenslaw/lenslaw';
import { LorentzforcewirePage } from '../pages/lorentzforcewire/lorentzforcewire';
import { DensityPage } from '../pages/density/density';
import { PressurePage } from '../pages/pressure/pressure';
import { LensstrenghtPage } from '../pages/lensstrenght/lensstrenght';
import { PowerPage } from '../pages/power/power';
import { CurrentstrenghtPage } from '../pages/currentstrenght/currentstrenght';
import { FrequencyPage } from '../pages/frequency/frequency';
import { WavespeedPage } from '../pages/wavespeed/wavespeed';
import { MassPage } from '../pages/mass/mass';
import { LorentzparticlePage } from '../pages/lorentzparticle/lorentzparticle';

@NgModule({
  declarations: [
    MyApp,
    HomePage,
    SpeedPage,
    DistancePage,
    TimePage,
    WorkPage,
    KinenergyPage,
    GravityenergyPage,
    GravityforcePage,
    CirckelmovementPage,
    ElectricityenergyPage,
    LawohmPage,
    LenslawPage,
    LorentzforcewirePage,
    DensityPage,
    PressurePage,
    LensstrenghtPage,
    PowerPage,
    CurrentstrenghtPage,
    FrequencyPage,
    WavespeedPage,
    MassPage,  
    LorentzparticlePage       
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    SpeedPage,
    DistancePage,
    TimePage,
    WorkPage,
    KinenergyPage,
    GravityenergyPage,
    GravityforcePage,
    CirckelmovementPage,
    ElectricityenergyPage,
    LawohmPage,
    LenslawPage,
    LorentzforcewirePage,
    DensityPage,
    PressurePage,
    LensstrenghtPage,
    PowerPage,
    CurrentstrenghtPage,
    FrequencyPage,
    WavespeedPage,
    MassPage,   
    LorentzparticlePage    
  ],
  providers: [
    StatusBar,
    SplashScreen,
    AdMobFree,
    InAppBrowser,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}

circkelmovement.module.ts

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { CirckelmovementPage } from './circkelmovement';

@NgModule({
  declarations: [
    CirckelmovementPage,
  ],
  imports: [
    IonicPageModule.forChild(CirckelmovementPage),
  ],
})
export class CirckelmovementPageModule {}

我已經讀到該命令可以解決加載應用程序時的性能問題。 我不知道我在做什么錯。 有人可以指出我正確的方向嗎?

親切的問候

因此,當您使用延遲加載的頁面時,根本不需要在app.module.ts中導入或聲明這些頁面,因為它們將成為其文件夾中自己模塊的一部分。 因此,對於所有延遲加載的頁面都具有:

  • 頁面的延遲加載頁面自己的命名模塊文件(您似乎在此特定頁面中擁有該文件)

  • 在您的應用程序邏輯中,當您加載這樣的頁面時(例如,使用navCtrl),您需要將頁面名稱作為字符串而不是作為組件使用

因此,在代碼中取消注釋您懶加載的頁面:

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { AdMobFree } from '@ionic-native/admob-free';
import { InAppBrowser } from '@ionic-native/in-app-browser';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { SpeedPage } from '../pages/speed/speed';
import { DistancePage } from '../pages/distance/distance';
import { TimePage } from '../pages/time/time';
import { WorkPage } from '../pages/work/work';
import { KinenergyPage } from '../pages/kinenergy/kinenergy';
import { GravityenergyPage } from '../pages/gravityenergy/gravityenergy';
import { GravityforcePage } from '../pages/gravityforce/gravityforce';
// import { CirckelmovementPage } from '../pages/circkelmovement/circkelmovement';
import { ElectricityenergyPage } from '../pages/electricityenergy/electricityenergy';
import { LawohmPage } from '../pages/lawohm/lawohm';
import { LenslawPage } from '../pages/lenslaw/lenslaw';
import { LorentzforcewirePage } from '../pages/lorentzforcewire/lorentzforcewire';
import { DensityPage } from '../pages/density/density';
import { PressurePage } from '../pages/pressure/pressure';
import { LensstrenghtPage } from '../pages/lensstrenght/lensstrenght';
import { PowerPage } from '../pages/power/power';
import { CurrentstrenghtPage } from '../pages/currentstrenght/currentstrenght';
import { FrequencyPage } from '../pages/frequency/frequency';
import { WavespeedPage } from '../pages/wavespeed/wavespeed';
import { MassPage } from '../pages/mass/mass';
import { LorentzparticlePage } from '../pages/lorentzparticle/lorentzparticle';

@NgModule({
  declarations: [
    MyApp,
    HomePage,
    SpeedPage,
    DistancePage,
    TimePage,
    WorkPage,
    KinenergyPage,
    GravityenergyPage,
    GravityforcePage,
    // CirckelmovementPage,
    ElectricityenergyPage,
    LawohmPage,
    LenslawPage,
    LorentzforcewirePage,
    DensityPage,
    PressurePage,
    LensstrenghtPage,
    PowerPage,
    CurrentstrenghtPage,
    FrequencyPage,
    WavespeedPage,
    MassPage,  
    LorentzparticlePage       
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    SpeedPage,
    DistancePage,
    TimePage,
    WorkPage,
    KinenergyPage,
    GravityenergyPage,
    GravityforcePage,
    // CirckelmovementPage,
    ElectricityenergyPage,
    LawohmPage,
    LenslawPage,
    LorentzforcewirePage,
    DensityPage,
    PressurePage,
    LensstrenghtPage,
    PowerPage,
    CurrentstrenghtPage,
    FrequencyPage,
    WavespeedPage,
    MassPage,   
    LorentzparticlePage    
  ],
  providers: [
    StatusBar,
    SplashScreen,
    AdMobFree,
    InAppBrowser,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}

還有一件事:請確保您對應用程序的命名約定非常謹慎。 我在這里看到:

@Component({
  selector: 'page-circkelmovement',
  templateUrl: 'circkelmovement.html',
})

您有不同的選擇器和模板url文件命名。 這可能會咬你;)以此為指導: https : //angular.io/guide/styleguide或遵循有關Ionic建議如何執行的示例,但最好在文件命名方面保持一致,例如:

  • publish.page.html
  • publish.page.module.ts
  • publish.page.scss
  • publish.page.ts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM