Zur Lokalisierung in meinem Reagieren Projekt, das ich bin mit einem automatisch generierten ES6-Modul, das wie folgt aussieht:Webpack langsam Build Leistung mit großen ES6 Modul
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;
Die Ressourcen Array ca. 2500 Elemente enthält.
In meiner React Komponente verwende ich das Ressourcenmodul wie:
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;
Das Problem ist, wenn ich Webpack für die Bündelung des Projektes verwenden. Die Buildzeit beträgt 78 Sekunden (78000ms), inkrementelle Builds sind jedoch schnell (etwa 400ms).
Wenn ich die Ressourcen-Array zu einer viel kleineren Menge von Gegenständen Streife (zum Beispiel 10 Stück) die Build-Zeit sinkt auf 7 Sekunden (7000ms), die viel mehr sinnvoll erscheint.
Hat jemand eine Idee, wie man die Bauzeit beschleunigt?
Ressourcen als JSON-Datei beibehalten? damit das webpack es nicht als Javascript verarbeiten muss? –
Warum sind Ressourcen ein Array? – maioman
@maioman, die Array-Lösung ist so, dass ich die Lokalisierungsressourcen aufrufen kann mit [ ‚en-US‘]. Hallo zum Beispiel. Haben Sie eine bessere Implementierung des Ressourcen-Moduls, so dass ich immer noch die richtige Lokalisierung abrufen kann, indem ich die gleiche Syntax (oder eine syntaktische Syntax) verwende? – alkesos