2013-05-09 67 views
4

目錄中的所有JavaScript文件我有一個文件夾結構是這樣的:如何優化與requirejs

. 
├── autocomplete 
│   ├── core.js 
│   ├── search.js 
│   └── user.js 
├── build.js 
├── collapsible_lists.js 
├── griffgrabber 
│   ├── canvasobject.js 
│   ├── cargame.js 
│   ├── car.js 
│   ├── griffDrawer.js 
│   ├── keylistener.js 
│   ├── run.js 
│   └── victim.js 
├── main.js 
├── newsfeed.js 
├── require.js 
├── shortcut.js 
└── sidebar.js 

3 directories, 20 files 

main.js是啓動文件。該文件需要一些文件,但不是全部。其餘文件包含在

<script> 
    require(['shortcut'], function(shortcut){ 
     // ... 
    }) 
</script> 

在一些html文件中。

這是我build.js文件至今:

{ 
    baseUrl: ".", 
    name: "main", 
    out: "main-built.js", 
} 

但只包括由main.js.所需的文件是否有可能在一次運行中優化所有JavaScript文件?

回答

1

(擴大@Ryan林奇的建議)

使用include選項,按文件:

你總是可以明確地添加模塊未通過優化的發現通過使用的靜態分析包括選項。

http://requirejs.org/docs/optimization.html

​​

在更詳細的例子優秀example.build.js(其實我覺得它比文檔頁面更有用)


(對不起,沒時間複製並正確測試以確保路徑值是正確的,稍後我會嘗試並更新我的答案)

0

嘗試,包括在你的選擇一個模塊陣列,所以:

{ 
    baseUrl: ".", 
    out: "main-built.js", 
    modules: [ 
     { 
      name: "main" 
     } 
    ] 
} 

按照文檔:

在模塊陣列,指定要 優化模塊名稱,在例子,「主」。 「main」將映射到您項目中的 appdirectory/scripts/main.js。構建系統將 然後跟蹤main.js的依賴關係並將它們注入到 appdirectory-build/scripts/main.js文件中。

+0

您發佈的構建文件不適用於我。 看來,如果我使用模塊,我必須刪除'out'語句並添加'dir'語句。當我使用'dir'時,它會優化整個目錄並將優化後的文件複製到另一個目錄。但它並不包含main-built.js文件中的每個文件。 – sighol 2013-05-09 17:53:29

0

實現此目的的另一個(不太正統的)方法是將此模塊作爲依賴項添加到由掃描發現的任何「可見」模塊(即, 「main.js」)。這樣,從「快捷方式」開始的整個依賴分支將包含在輸出中。