问题描述: 在使用Angular 8进行构建(ng build)时,出现了“未定义Globalize”的错误。
解决方法: 出现此错误可能是由于缺少对Globalize库的引用导致的。要解决这个问题,可以按照以下步骤进行操作:
安装Globalize库: 打开命令行终端,并导航到你的项目目录。然后执行以下命令来安装Globalize库:
npm install globalize --save
引入Globalize库:
在你的Angular项目的angular.json文件中,找到architect -> build -> options -> scripts属性,并添加Globalize库的引用:
"scripts": [
  "node_modules/globalize/dist/globalize.js"
]
引入Globalize所需的locales:
在angular.json文件中,找到architect -> build -> options -> assets属性,并添加Globalize所需的locales文件路径:
"assets": [
  "src/favicon.ico",
  "src/assets",
  {
    "glob": "**/*",
    "input": "node_modules/cldr-data",
    "output": "./cldr-data"
  }
]
在主模块中引入Globalize:
打开你的主模块(通常是app.module.ts)文件,并添加以下代码来引入Globalize:
import * as Globalize from 'globalize';
import 'cldr-data';
import 'cldr-data/main';
// ...
// 在@NgModule装饰器的providers数组中添加Globalize
providers: [
  { provide: 'globalize', useValue: Globalize }
]
使用Globalize: 在你的组件中,可以通过依赖注入的方式来使用Globalize库。如下所示:
import { Component, Inject } from '@angular/core';
import * as Globalize from 'globalize';
@Component({
  // ...
})
export class MyComponent {
  constructor(@Inject('globalize') private globalize: typeof Globalize) {
    // 可以在这里使用Globalize库的方法
    // 例如:this.globalize.formatDate(...)
  }
}
通过上述步骤,你应该能够成功解决“未定义Globalize”的错误,并正确使用Globalize库。
                    上一篇:Angular 8 - ng build prod 显示错误,而 ng serve 正常运行 - 模块导入了意外的值 'undefined'。
                
下一篇:Angular 8 - ng lint: Maximum call stack size exceeded 的错误