ES6 Для локализации в моем React проекте я использую автоматически сгенерированные ES6 модуль, который выглядит следующим образом:Webpack низкая производительность сборки с большим модулем
var Resources = new Array();
Resources['en-US']={};
Resources['en-US'].hello = 'Hello';
Resources['en-US'].welcome = 'Welcome';
.. snip ...
Resources['sv-SE']={};
Resources['sv-SE'].hello = 'Hej';
Resources['sv-SE'].welcome = 'Välkommen';
export default Resources;
Массив ресурсов содержит около 2500 позиций.
В моих Реагировать компоненты я использую модуль ресурсов, как:
import React from 'react';
import Resources from '../Assets/Resources';
var Test = React.createClass({
propTypes: {
culture: React.PropTypes.string
},
render: function() {
return (
<div>{Resources[this.props.culture].hello</div>
);
}
});
export default Test;
Проблема заключается в том, когда я использую Webpack для пакетирования проекта. Время сборки составляет около 78 секунд (78000 мс), инкрементные сборки быстрые, хотя (около 400 мс).
Если я разделяю массив ресурсов на гораздо меньшее количество элементов (например, 10 элементов), время сборки уменьшается до 7 секунд (7000 мс), что кажется гораздо более разумным.
Кто-нибудь знает, как ускорить время сборки?
сохранить ресурсы как json-файл? так что веб-пакет не должен обрабатывать его как javascript? –
Почему ресурсы массива? – maioman
@maioman, решение массива так, что я могу вызвать локализацию, используя ресурсы [en-US]. Привет, например. У вас есть лучшая реализация модуля Resources, так что я все еще могу получить правильную локализацию, используя тот же синтаксис (или синтаксис, который имеет ressembles)? – alkesos