2014-02-11 98 views
5

我爲我的javascript項目使用RequireJS,並且使用r.js構建一個用於生產的單個javascript文件。這個單一文件(main.js)然後被上傳到CDN。這一切都很好,但現在我試圖添加國際化支持。如何用RequireJS r.js構建國際化路徑if

問題是i18n文件的位置是相對於主javascript文件。因此,一個模塊內,我將有:

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

這一切工作的時候,我發展得很好,但生產的問題是,因爲這放在翻譯文件是不是相對於main.js文件在CDN中。我不想將轉換文件存儲在CDN中,那麼如何在構建過程中更改對該文件的引用?

回答

5

我找到了解決我的問題。 在RequireJS配置,我說:

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

因爲路徑以斜槓開始,RequireJS知道這是不是相對的。現在我得到的問題是構建會失敗,因爲RequireJS將在/ js/nls中查找默認語言文件。因此,我添加了一個從我的web服務器的根目錄到機器上的nls目錄的符號鏈接。

0

有同樣的問題。

使用baseUrl配置

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