2012-12-16 58 views
2

是否有任何干淨的方式來加載非js擴展名而不是AMD內容的文件?使用require.js加載非AMD文件和非.js擴展名的文件

我使用enforceDefine配置來確保我的實際AMD代碼在開發過程中工作。

到目前爲止,我已經成功地把一個插件,設置enforceDefine爲假,所以我可以加載第三方庫,像這樣:require(['noamd!handlebars'])。這對我來說看起來並不算太難,但我想知道是否有更好的方法。

我目前正在測試noext插件,它做它的工作,但也在一種哈克的方式。我注意到它將noext參數兩次應用於url(test.txt?noext=1&noext=1)。我可以忍受這一點,但最好我想擺脫所有額外的參數。可以這樣做嗎?

回答

6

要加載非JS的文件(例如.handlebars,.mustache),那麼the text plugin將適合您的目的。

要加載正常的js文件,你可以使用RequireJS作爲腳本裝載機:

require(['full/path/to/file.js'], function(){ 
    // Fired when file is loaded but if non AMD 
    // no value will be passed to this function 
}); 

如果你想治療非AMD文件作爲一個模塊,然後you can use the shim config來實現它。

+0

很好的答案,但並沒有幫助我的情況特別。我應該在問題中提到我已經考慮過文本插件來加載非js文件。目前我正在加載非AMD文件,就像你解釋的那樣,但我創建了一個臨時禁用_enforceDefine_的插件,所以當文件不包含AMD模塊時,RequireJS不會拋出錯誤。我也考慮過墊片配置,但很快放棄了它。我想即使在事先不知道模塊是否要加載的情況下,它也可以工作。我只是沒有耐心的文檔:) – jpeltoniemi

2

可以追加一個MEH = BLAH到最後停止的.js附加

requirejs.config({ 
    paths: { 
     "dynamicstripconfig": "../php/domain/config.php?dynamic=1" 
    } 
}); 

此外,還有該插件爲好,但不支持路徑? - >https://github.com/millermedeiros/requirejs-plugins

添加修爲路徑支持一個問題 - >https://github.com/millermedeiros/requirejs-plugins/issues/47

如果你的文件是不是實際上是一個動態的js文件,然後使用t ext插件 - >https://github.com/millermedeiros/requirejs-plugins