我是Angular环境的新手,正在使用Bootstrap 4 + angular材质创建一个项目。我正在使用“ material.module.ts”导入-导出所有必需的材料组件。
当我使用“ ng serve ”命令运行该应用程序时,它没有显示任何错误并且运行正常。当我使用-aot 参数进行构建或针对生产进行构建( ng build --prod )时,出现错误:
ERROR in Illegal State: referring to a type without a variable {"filePath":"D:/ff/node_modules/@angular/material/form-field/typings/index.d.ts","name":"MatFormField","members":[]}
使用--prod参数的角度构建失败,但是能够运行应用程序
以下是 ng --version 的输出:
Angular CLI: 8.3.0
Node: 12.7.0
OS: win32 x64
Angular: 8.2.3
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.803.0
@angular-devkit/build-angular 0.802.2
@angular-devkit/build-optimizer 0.802.2
@angular-devkit/build-webpack 0.802.2
@angular-devkit/core 8.3.0
@angular-devkit/schematics 8.3.0
@angular/cdk 8.1.3
@angular/cli 8.3.0
@angular/material 8.1.3
@ngtools/webpack 8.2.2
@schematics/angular 8.3.0
@schematics/update 0.803.0
rxjs 6.4.0
typescript 3.5.3
webpack
我尝试了npm更新,npm审核修复,ng更新..,但都没有解决此问题。我的Mac和Windows机器中存在相同的问题
答案 0 :(得分:0)
这可能是因为您没有在MatFormField
中导入FeatureModule
。如果您在任何子组件中使用<mat-form-field>
,请确保将其导入模块中。
import { MatFormFieldModule } from '@angular/material/form-field';
@NgModule({
declarations: [ ... ],
imports: [
CommonModule,
MatFormFieldModule,
...
]
})
export class FeatureModule { }