Angular2/Angular-cli 使用 --prod 开关构建时出现奇怪的错误



我最近将 angular-cli 更新为 1.0.0-rc2,一切似乎都很顺利,除了我无法使用 --prod 开关构建我的应用程序。 我正在使用 ng2-spin-kit 模块来加载指标,它一直抱怨无法找到 ng-2-spin-kit 模块的每个组件的模块。 知道这里可能出了什么问题吗? 我该如何解决这个问题?

更新

所以事实证明问题是最新版本的 angular-cli 默认情况下将 --aot(提前编译(标志设置为 true,并且我的一些组件没有针对 aot 编译进行优化...... 知道如何更新我的所有组件以接受提前编译吗? 我不是说ng2-spin-kit。 只是我的应用程序特定的组件,事实证明我的大多数组件都针对 AOT 进行了优化,即使我在编写它们时并不打算让它们......

my app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule, Routes } from '@angular/router';
import { CircleComponent } from './components/loader/spinner/circle.component';

import { AppComponent } from './app.component';
import { ProductComponent } from './Components/product/product.component';
import { CheckBarcodesComponent } from './Components/check-barcodes/check-barcodes.component';
import { HomeComponent } from './Components/home/home.component';
import { NavigationComponent } from './Components/navigation/navigation.component';
import { SettingsComponent } from './Components/settings/settings.component';
import { StockTransactionItemComponent } from './Components/stock-transaction-item/stock-transaction-item.component';
import { StockTakeComponent } from './Components/stock-take/stock-take.component';
import { LoaderComponent } from './Components/loader/loader.component';
import { ErrorComponent } from './Components/error/error.component';
import { GoodsReceivedComponent } from './components/goods-received/goods-received.component';
import { LoginComponent } from './components/login/login.component';
import { RestService } from './services/rest.service';
import { LocalStorageService } from './services/local-storage.service';
import { UserService } from './services/user.service';
import { AppRoutingModule } from './app.routing';
import { StatusComponent } from './Components/status/status.component';
import { StringToDatePipe } from './pipes/string-to-date.pipe';

@NgModule({
  declarations: [
    AppComponent,
    ProductComponent,
    CheckBarcodesComponent,
    HomeComponent,
    NavigationComponent,
    SettingsComponent,
    StockTransactionItemComponent,
    StockTakeComponent,
    CircleComponent,
    LoaderComponent,
    GoodsReceivedComponent,
    ErrorComponent,
    StatusComponent,
    LoginComponent,
    StringToDatePipe    
  ],
  imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    HttpModule,
    AppRoutingModule
  ],
  providers: [
    RestService,
    LocalStorageService,
    UserService
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

NG2-旋转套件:https://www.npmjs.com/package/ng2-spin-kit

我的错误/输出:

   {0} polyfills.34c267ddff87908e0732.bundle.js (polyfills) 157 kB {5} [initial] [rendered]
chunk    {1} main.8abb16adf25a257394ee.bundle.js (main) 534 kB {4} [initial] [rendered]
chunk    {2} scripts.dde47148c4c3cb36c6df.bundle.js (scripts) 226 kB {5} [initial] [rendered]
chunk    {3} styles.7c25a02a137df81c1ced.bundle.css (styles) 122 bytes {5} [initial] [rendered]
chunk    {4} vendor.608820e6096d2310322a.bundle.js (vendor) 2.46 MB [initial] [rendered]
chunk    {5} inline.077315b77d1f4e6e0707.bundle.js (inline) 0 bytes [entry] [rendered]
ERROR in ./src/$$_gendir/app/components/login/login.component.ngfactory.ts
Module not found: Error: Can't resolve '../loader/loader.component.ngfactory' in 'C:UsersDeonDocumentstrade-linkrtmsrc$$_gendirappcomponentslogin'
 @ ./src/$$_gendir/app/components/login/login.component.ngfactory.ts 26:0-65
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts
ERROR in ./src/$$_gendir/app/components/login/login.component.ngfactory.ts
Module not found: Error: Can't resolve '../error/error.component.ngfactory' in 'C:UsersDeonDocumentstrade-linkrtmsrc$$_gendirappcomponentslogin'
 @ ./src/$$_gendir/app/components/login/login.component.ngfactory.ts 29:0-63
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts
ERROR in ./src/$$_gendir/app/components/goods-received/goods-received.component.ngfactory.ts
Module not found: Error: Can't resolve '../error/error.component.ngfactory' in 'C:UsersDeonDocumentstrade-linkrtmsrc$$_gendirappcomponentsgoods-received'
 @ ./src/$$_gendir/app/components/goods-received/goods-received.component.ngfactory.ts 45:0-63
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts
ERROR in ./src/$$_gendir/app/components/login/login.component.ngfactory.ts
Module not found: Error: Can't resolve '../navigation/navigation.component.ngfactory' in 'C:UsersDeonDocumentstrade-linkrtmsrc$$_gendirappcomponentslogin'
 @ ./src/$$_gendir/app/components/login/login.component.ngfactory.ts 44:0-73
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts
ERROR in ./src/$$_gendir/app/components/goods-received/goods-received.component.ngfactory.ts
Module not found: Error: Can't resolve '../navigation/navigation.component.ngfactory' in 'C:UsersDeonDocumentstrade-linkrtmsrc$$_gendirappcomponentsgoods-received'
 @ ./src/$$_gendir/app/components/goods-received/goods-received.component.ngfactory.ts 47:0-73
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts
ERROR in ./src/$$_gendir/app/Components/loader/loader.component.ngfactory.ts
Module not found: Error: Can't resolve './spinner/circle.component.ngfactory' in 'C:UsersDeonDocumentstrade-linkrtmsrc$$_gendirappComponentsloader'
 @ ./src/$$_gendir/app/Components/loader/loader.component.ngfactory.ts 22:0-65
 @ ./src/$$_gendir/app/Components/settings/settings.component.ngfactory.ts
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts
C:UsersDeonDocumentstrade-linkrtm>

实际上,在正常情况下,"组件"不需要任何特殊的东西来支持aot,但模块需要。出错的原因是您使用的模块ng2-spin-kit不支持 AOT。您可以看到此问题来说明有关 AOT 的错误。

您可以更新该旋转模块。关于如何支持 AOT,您可以检查一下。

最新更新