r.js是RequireJS的一部分(optimizer)。它依賴於UglifyJS,而UglifyJS基於nodejs。r.js多數時候配合模塊化(AMD)寫法進行合並,壓縮。如果你的代碼不采用AMD方式,也可以用它來壓縮。這篇討論的是當不采用AMD方式組織代碼時壓縮整個項目的js文件。
假設項目中所有的js文件都在scripts目錄中
項目中有css,html,scripts三個目錄,分別對應css,html和js文件。下載的r.js與myapp平行放置。
scripts-build目錄放置壓縮後的js文件,結構同scripts,但會多生成一個build.txt文件。
build.js文件是需要我們自己配置的,r.js會根據它去找被壓縮的目錄和壓縮後的放置目錄。大概如下
({
appDir: "scripts",
baseUrl: "scripts",
dir: "scripts-build"})
以下是我測試的項目(壓縮前)
可以看到,scripts-build目前是空的。好瞭,開始壓縮瞭。
1,cmd進入命令行控制臺,我的項目在e:/work/myapp
2,cd到當前項目(進入e盤,cd work/myapp)
3,執行命令:node r.js -o build.js 效果如圖
這時壓縮成功瞭,再看scripts-build目錄,和scripts結構一樣,且多瞭個build.txt。
摘自 Snandy