JavaScript 常常會需要修改後,執行壓縮等動作,常見的會是用 grunt 做類似下述命令:
- grunt.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);
- grunt.registerTask('dist', ['concat:dist', 'uglify:dist']);
- 取自:Creating tasks - Grunt: The JavaScript Task Runner
不過要做檔案合併、檢查、壓縮.. 等等,應該不用這麼費工,Shell 就可以做到,於是簡單的寫了一套。
註:整個程式只有兩個檔案,全部內容只有5行,相信修改應該沒有難度。(程式語言:Linux 的 Bash Shell)
Linux Bash 監控檔案修改 執行即時合併
JavaScript 檢查程式、壓縮程式這些有各自喜好,請自行修改 Script 去達成即可。
此程式內含的只有做最簡單的檔案合併,可以自行靠 pipe 加上 jshine、uglify.. 等等。
- 完整程式於此處:tsung/watch-bash
- 此程式的功用在於開啟即時監控此目錄下的所有檔案,有任何修改,立刻做檔案合併的動作。
程式使用說明
- 執行:./watch_linux.sh
- 停止:Ctrl + c
程式修改說明
- 說明此程式用到的指令:
- watch:每秒執行一次,循序不斷地執行
- find:找出每秒更新的檔案
- cat:合併內容
- 想要對檔案、目錄做任何監控、排除等動作(watch_linux.sh),都使用 find 的命令達成 (iname、! -path .. 等等)。
- 想要對檔案做合併、壓縮等動作,修改 concat.sh,加入即可。
測試環境與操作
- cd /tmp
- git clone https://github.com/tsung/watch-bash
- cd watch-bash/example/ # 將 util.js 裡面的 Library 檔案合併在前面,將合併後的內容放於 dist/
- vim util.js # 隨意寫寫
- vim test.js # 隨意寫寫
- ./watch_linux.sh # 開啟 watch.sh
- vim test.js # 修改內容,註:修改 util.js 請不要開啟 watch.sh,或者 watch_linux.sh 需要增加排除 util.js 的檔案檢查(find)
- 於 dist/ 自動產生 test.min.js 的檔案,是將 util.js + test.js 合併起來的