Angular 7 AOT产品构建UIRouter forRoot问题

时间:2019-07-12 19:47:27

标签: angular angular-ui-router angular2-aot aot

我正在尝试使用--prod设置来构建我的angular 7应用程序。

npm run ng build --configuration=production --base-href /app3/ --prod

我解决了各种错误,但无法解决以下错误。

  

在“ MainModule”功能的模板编译期间发生错误   装饰器中不支持调用,但调用了'UIRouterModule'。

在我的模块中,我有此代码


export const SHARED_STATES: Ng2StateDeclaration[] = states;

...

imports: [
    FormsModule,
    CommonModule,
    NgbModule,
    UIRouterModule.forChild({ // <-- ERROR CAUSING IMPORT
        states: SHARED_STATES
    }),
    MatIconModule,
    MatButtonModule,
    MatTreeModule,
    BrowserAnimationsModule
],

我正在使用"@uirouter/angular": "^4.0.0" 我知道AOT无法处理函数调用,但模块作者必须解决这一事实。从Github源代码中,我意识到他们添加了AOT支持,但是我不确定如何使用它。我在此问题上浪费了将近2天,因此向SO寻求帮助。任何帮助表示赞赏。预先感谢。

更新(7/15/2019):我试图为stackblitz创建方案,但没有任何区别,但是在本地我可以使用tsconfig.json下面的错误来重现该错误。

{
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": false,
    "strictMetadataEmit": false,
    "skipMetadataEmit": false,
    "skipTemplateCodegen": true
  },
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

设置"skipTemplateCodegen": true有所作为。知道为什么吗?是否有解决此问题的推荐方法?

0 个答案:

没有答案