1.前言html
在咱們調試修改代碼的時候,每修改一次代碼,哪怕只是很小的修改,咱們都須要手動從新build文件,而後再運行代碼,看修改的效果,這樣的效率特別低,對於開發者來講簡直不能忍。node
2.構建自動編譯工具git
如何使用nodeJs來監聽文件變化,一旦源文件修改保存時,自動運行build過程。好比當你寫CoffeeScript文件或SASS文件時,保存以後可即時生成對應的JS或CSS.github
基於Node.JS的偵聽文件夾改變的模塊有不少。shell
a . fs.watch。Node.JS的文件系統也可偵聽某個目錄的改變npm
fs.watch的最大缺點就是不支持子文件夾的偵聽,而且在不少狀況下會偵聽到兩次事件(不少編輯器在保存的時侯是先把原文件清空,再進行保存,所以會觸發兩次文件夾改變事件)。所以須要一些開源的文件夾監聽文件夾目錄的改變。api
b. Chokidar。chokidar 是一個基於node.JS的監聽文件夾改變模塊編輯器
步驟: 1. 運行 npm install chokidar --save-devgrunt
npm install [-g] shelljs
2. 建立一個文件helper.js工具
3. 在helper.js文件中寫入:
var chokidar = require('chokidar');
var shelljs = require('shelljs');
chokidar.watch('accordion').on('change', function(){
'use strict';
shelljs.exec("grunt build:accordion");
shelljs.exec("node helper.js");
//shelljs.exit(1); 執行完就退出
});
在控制檯輸出:node helper.js就能夠使用chokidar來監控咱們的test.html 文件的變化,這裏是監控change變化,一旦test.html 文件有修改並保存,那麼控制檯就會輸出語句:aaa.
shellJs是用來執行命令
c. Watch. Watch 是另外一個監聽文件夾改變的Node.JS模塊
相似chokidar的用法,推薦chokidar