ng build —prod 失败但能够运行

Posted

技术标签:

【中文标题】ng build —prod 失败但能够运行【英文标题】:ng build —prod getting failed but able to run 【发布时间】:2019-12-29 07:47:16 【问题描述】:

我是 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 update、npm audit fix、ng update.. 但都没有解决问题。我的mac和windows机器也有同样的问题

【问题讨论】:

请提供一些可能有用的代码 【参考方案1】:

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

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

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

【讨论】:

以上是关于ng build —prod 失败但能够运行的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试在 app-module 中导入 javascript 文件时,ng build --prod 失败

ionic cordova build --prod --release 失败并产生错误

Ionic V4 - Build Prod “找不到 cordova.js 脚本标签。插件加载可能失败。”

运行 ng build --prod 时无法读取未定义的属性“替换”

在 ng build angular 中运行严格编译

Angular 8:运行 ng build --prod --base-href './project1' 时访问资产文件夹