2012-12-30 182 views
2

我試圖優化與RequireJS的JavaScript文件顯著的數字,但我有麻煩纏繞我圍繞如何正確地構建與優化的腳本,並在所需加載它們在瀏覽器中頭部辦法。使用RequireJS優化的局部優化

雖然下面的描述是相當具體,我會想象不少其他人都遇到同樣的挑戰。 (或者他們在他們的要求中做出了更明智的選擇!)

我正在使用bower下載一個腳本目錄,並且我想將這些腳本(或其中的一部分)包含在我的網頁中。

此外,在測試時我基本上從來不想讓瀏覽器取回個人涼亭腳本。本地測試框架連續響應請求,所以這非常緩慢。我想使用RequireJS優化器或其他方法將所有已下載的bower腳本合併到一個文件中。

相比之下,我自己的代碼被分解成一長串Coffeescript文件,我想用RequireJS CS plugin來爲瀏覽器編譯它們。

當再發展,我希望我的瀏覽器加載像下面這樣:

  • components.js
  • main.js
    • csmain.coffee
    • my_module.coffee

components.js將由鮑爾的components目錄中的以下文件組成,例如,

  • jquery的:的jquery/jquery的
  • jQueryUI的:
    • jQueryUI的/ UI/jquery.ui.core
    • jQueryUI的/ UI/jquery.ui.datepicker
  • AMPLIFY:
    • 放大/型芯/ amplify.core
    • 放大/請求/ AM plify。請求
  • 自舉:
    • 引導/ JS /自舉過渡
    • 引導/ JS /自舉警報
    • 引導/ JS /引導按鈕
    • 引導/ JS /引導傳送帶
    • 引導/ JS /引導崩潰
  • lodash:lodash/lodash

在生產中,瀏覽器會加載一個文件,如all.js

所以我的問題是:如果我使用RequireJS什麼進入瀏覽器main.js和構建腳本來實現部分和完全優化的構建。我在這個問題上花費了不成比例的時間,而RequireJS中莫名其妙的和不可思議的錯誤數量不可思議地很長 - 直到我無法確定可分割的禁止性問題。它似乎並不是工作的工具,但我很樂意予以糾正。

我有一個優化腳本什麼類似於以下(在YAML符號):

baseUrl: "../media/my-scripts/" 
optimize: none 
out: build/all.js 
stubModules: 
- cs 
- coffee-script 
paths: 
    cs: "../../scripts/components/require-cs/cs" 
    'coffee-script': "../../scripts/components/require-cs/coffee-script" 
    usf: "./main" 
    components: "../compiled/components" 
name: usf 
logLevel: 0 
shim: # ... 

看來,我想解決的問題是相當簡單的,但解決不到位。 RequireJS儘管非常出色,但比我所需要的要複雜得多。 Almond.js是加載模塊的替代方案 - 但問題在於缺少其他合適的優化器。

對於如何使用r.js來實現上述目標,或者可能存在哪些合適的替代優化解決方案,有任何可能的選擇的想法,我將不勝感激。

回答

1

由於沒有找到一個答案,我寫了 YAMDO解決這個問題 編輯因爲我已經不提倡使用的項目,於真棒Browserify項目來休息。