2013-01-17 60 views
1

我開發了一個應用程序使用RequireJS,沒有優化層 - 需要分別下載每個文件。這裏是外部標記:錯誤使用crossroads.js優化(r.js)需要設置

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <script type="text/javascript"> 
     var require = { 
     //some basic config 
     }; 
    </script> 
    </head> 
    <body> 
    <!--snip--> 
    </body> 
    <script type="text/javascript" data-main="main" src="scripts/lib/require.min.js"></script> 
</html> 

這個函數沒有任何問題,但有100多個文件的加載時間真的在那裏起來。所以,時間介紹r.js optimization!我使用node和r.js創建組合文件,並將data-main="main"更改爲data-main="_build/main"

我得到以下錯誤:

Error: Mismatched anonymous define() module: (the entire body of crossroads.js)

思考:

我仍在挖掘,但希望有人能救我一些時間在這裏。

+0

十字路口使用未命名的定義,你如何加載/捆綁它?你是否指定了一個指向它的「路徑」配置? 也如果你做一個r.js構建我會使用源文件而不是縮小的dist文件,因爲它會幫助調試,並且您可以輕鬆地跟蹤更改。 –

+0

@MillerMedeiros是的,有一個路徑成員'十字路口':'lib/crossroads' –

回答

1

TL; DR;使用crossminads.js的unminified版本,因爲你正在做一個r.js構建它已經壓縮了源文件。

十字路口使用未命名的定義,並被封裝到自定義UMD(通用模塊定義)中。由於r.js無法添加正確的模塊名稱,縮小版本將無法正常工作。

縮小之前:

(function(define){define(["signals"], ... 

縮小後:

(function(a){a(["signals"], ... 

r.js想不出什麼a手段,只查找define電話。

+0

啊哈!當然,現在我感覺很傻。謝謝! –

+1

只是一個FIY [email protected]不會有這個問題。只是把它推到github和npm。乾杯。 –