ng build —产品失败但可以运行

时间:2019-08-24 06:10:09

标签: angular ng-build npm-package

我是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机器中存在相同的问题

1 个答案:

答案 0 :(得分:0)

这可能是因为您没有在MatFormField中导入FeatureModule。如果您在任何子组件中使用<mat-form-field>,请确保将其导入模块中。

import { MatFormFieldModule } from '@angular/material/form-field';

@NgModule({
    declarations: [ ... ],
    imports: [
        CommonModule,
        MatFormFieldModule,
        ...    
    ]
})
export class FeatureModule { }