在angular cli中实现时,带有globalize的Cldr问题



我试图创建一个支持L10n的angular 4项目。我试图在我的项目中使用Globalize库。但在编译我的项目时遇到了很多错误。我不想使用globalize webpack插件或更改我的webpack配置文件。我使用npm install globalize cldr-data安装了globalize。但当我试图在像import Globalize from 'globalize'这样的.ts文件中使用globalize时,我会得到像cant resolve cldr这样的错误。

import { Component,OnInit} from '@angular/core';
import * as cldr from 'cldrjs';
import Globalize from 'globalize';
var globalize = new Globalize( "en" );
console.log(globalize);

ERROR in ./~/globalize/dist/globalize.js
Module not found: Error: Can't resolve 'cldr'

我陷入了困境。非常感谢您的帮助

您需要在tsconfig.json文件中添加globalizecldr模块的路径,如下所示:

{
...
"compilerOptions": {
...
"paths": {
"globalize": [
"node_modules/globalize/dist/globalize"
],
"globalize/*": [
"node_modules/globalize/dist/globalize/*"
],
"cldr": [
"node_modules/cldrjs/dist/cldr"
],
"cldr/*": [
"node_modules/cldrjs/dist/cldr/*"
],
"jszip": [
"node_modules/jszip/dist/jszip.min.js"
]
}
}
}

参考:https://github.com/DevExpress/devextreme-angular/blob/master/docs/setup-3rd-party-dependencies.md#globalize-注册

将以下内容添加到Webpackconfig文件中:

resolve: {alias: {'cldr$': 'cldrjs', 'cldr': 'cldrjs/dist/cldr'}}

最新更新