我正在尝试使用--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
有所作为。知道为什么吗?是否有解决此问题的推荐方法?