2014-02-11 2 views
5

Ich benutze RequireJS für mein Javascript-Projekt und r.js, um eine einzige Javascript-Datei für die Produktion zu erstellen. Diese einzelne Datei (main.js) wird dann in ein CDN hochgeladen. Das alles funktioniert sehr gut, aber jetzt versuche ich, i18n Unterstützung hinzuzufügen.Wie ändere ich den Pfad für i18n mit RequireJS r.js Build

Das Problem ist, dass der Speicherort der i18n-Datei relativ zur Haupt-JavaScript-Datei ist. Also innerhalb eines Moduls, hätte ich:

define(['i18n!nls/text'], function(Translation) { }); 

Das alles funktioniert sehr gut, wenn ich entwickle, aber für die Produktion des Problem ist, dass die Übersetzungsdatei in die main.js Datei nicht relativ ist, da dies platziert in einem CDN. Ich möchte die Übersetzungsdatei nicht im CDN speichern. Wie kann ich den Verweis auf diese Datei im Build-Prozess ändern?

Antwort

5

fand ich eine Lösung für mein Problem. In den RequireJS Config ich hinzugefügt haben:

requirejs.config({ 
    paths: { 
     nls: "/js/nls" 
    } 
}); 

Da der Pfad mit einem Schrägstrich beginnt, RequireJS weiß es nicht relativ ist. Jetzt hatte ich das Problem, dass der Build fehlschlagen würde, da RequireJS in/js/nls nach Standard-Sprachdateien suchen würde. Daher habe ich einen Symlink von der Wurzel meines Webservers zum Verzeichnis nls auf dem Rechner hinzugefügt.

0

Hatte das gleiche Problem.

Verwenden baseUrl Config

require.config({ 
    baseUrl: '/path_for_not_included_modules/' 
}); 
Verwandte Themen