簡體   English   中英

npm install globalize - E_MISSING_BUNDLE

[英]npm install globalize - E_MISSING_BUNDLE

我確定這是一個愚蠢的配置問題,但我似乎無法弄清楚。 我在以這種方式安裝的 nodejs 中使用 globalize 包:

npm install --save globalize cldr-data

看看我安裝的 package.json :

"globalize": "^1.1.1",
"cldr-data": "^29.0.1",

然后我創建了一個 nodeunit 測試:

var Globalize = require( "globalize" );
Globalize.load( require( "cldr-data" ).entireSupplemental() );
Globalize.load( require( "cldr-data" ).entireMainFor( "es") );
Globalize.loadMessages({
    en: {
        hello: "Hello, {0} {1} {2}",
        hey: "Hey, {first} {middle} {last}"
    }
});
exports['test message translation'] = function (test) {
    var enFormatter = Globalize( "es-MX" ).messageFormatter( "hello" );
    testString = enFormatter([ "Wolfgang", "Amadeus", "Mozart" ]);
    test.equal(testString, "Hello, Wolfgang Amadeus Mozart");
    test.done();
};
exports['test date localization'] = function (test) {
    test.equals("18/4/2016", Globalize( "es-MX" ).dateFormatter()( new Date()));
    test.done();
};

第一個測試通過,但第二個測試失敗並出現此錯誤:

Error: E_MISSING_BUNDLE: {"locale":"es-MX"}
    at createError (/Users/darrin/src/tot/commons/node_modules/globalize/node_modules/cldrjs/dist/cldr.js:341:11)
    at validate (/Users/darrin/src/tot/commons/node_modules/globalize/node_modules/cldrjs/dist/cldr.js:357:10)
    at Cldr.main (/Users/darrin/src/tot/commons/node_modules/globalize/node_modules/cldrjs/dist/cldr.js:663:3)
    at dateExpandPattern (/Users/darrin/src/tot/commons/node_modules/globalize/dist/globalize/date.js:110:18)
    at Globalize.dateFormatter.Globalize.dateFormatter [as dateFormatter] (/Users/darrin/src/tot/commons/node_modules/globalize/dist/globalize/date.js:1828:12)
    at Object.exports.test date localization (/Users/darrin/src/tot/commons/tests/globalize/globalize.test.js:43:40)
    at Object.<anonymous> (/Users/darrin/src/tot/commons/node_modules/nodeunit/lib/core.js:236:16)
    at /Users/darrin/src/tot/commons/node_modules/nodeunit/lib/core.js:236:16
    at Object.exports.runTest (/Users/darrin/src/tot/commons/node_modules/nodeunit/lib/core.js:70:9)
    at /Users/darrin/src/tot/commons/node_modules/nodeunit/lib/core.js:118:25

有人對我如何錯誤配置有任何想法嗎?

發表這篇文章后立即想通了。

事實證明,如果我將“es-MX”添加到要加載到entireMainFor的語言環境列表中,這將按預期工作:

Globalize.load( require( "cldr-data" ).entireMainFor( "es", "es-MX") );

希望這對其他人有幫助! 無論出於何種原因,我認為給定語言下的所有語言環境都已加載到此函數中。 我已經提交了一個問題來全球化,因為其他人可能會做出相同的假設,並且對文檔的輕微更改可以澄清 - 它在這里: jquery / globalize #610

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM