npm install globalize - E_MISSING_BUNDLE
Я уверен, что это глупая проблема конфигурации, но я не могу понять это. Я использую пакет globalize в nodejs, установленном таким образом:
npm install --save globalize cldr-data
Который смотрит на мой package.json:
"globalize": "^1.1.1",
"cldr-data": "^29.0.1",
Затем я создал тест узла узла:
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
У кого-нибудь есть какие-либо идеи о том, как я неправильно это настраиваю?
1 ответ
Разобрался сразу ПОСЛЕ создания этого поста.
Оказывается, если я добавлю "es-MX" в список локалей для загрузки в entireMainFor
это работает как исключено:
Globalize.load( require( "cldr-data" ).entireMainFor( "es", "es-MX") );
Надеюсь, это поможет кому-то еще! По какой-то причине я думал, что все локали под данным языком были загружены в эту функцию. Я представил проблему, чтобы глобализировать догадку, что другие могут сделать те же предположения, и небольшое изменение в документации может прояснить - это здесь: jquery / globalize # 610.