當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
使用Node.JS监听文件夹变化
生活随笔
收集整理的這篇文章主要介紹了
使用Node.JS监听文件夹变化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用Node.JS監(jiān)聽文件夾改變有許多應用場合,比如:
構(gòu)建自動編繹工具
當源文件改變時,自動運行build過程,比如當你寫CoffeeScript文件或SASS CSS文件時,保存之后可即時生成對應的JS或CSS.
構(gòu)建自動布署工具
通過偵聽源文件夾的改變,你可以自動即時將改后的文件布署到測試服務器,加快你的開發(fā)測試速度。
這些工具其實都需要偵聽文件夾的改變,基于Node.JS的偵聽文件夾改變的模塊有很多。
fs.watch
其中Node.JS的文件系統(tǒng)也可偵聽某個目錄的改變, 如 fs.watch
fs.watch('somedir', function (event, filename) {console.log('event is: ' + event);if (filename) {console.log('filename provided: ' + filename);} else {console.log('filename not provided');} });其中fs.watch的最大缺點就是不支持子文件夾的偵聽,并且在很多情況下會偵聽到兩次事件(很多編輯器在保存的時侯是先把原文件清空,再進行保存,因此會觸發(fā)兩次文件夾改變事件)。因此需要一些開源的模塊來監(jiān)聽文件夾目錄的改變。
chokidar
chokidar? 是一個基于node.JS的監(jiān)聽文件夾改變模塊。
安裝
npm install chokidar示例
var chokidar = require('chokidar');var watcher = chokidar.watch('file, dir, or glob', {ignored: /[\/\\]\./, persistent: true });var log = console.log.bind(console);watcher.on('add', function(path) { log('File', path, 'has been added'); }).on('addDir', function(path) { log('Directory', path, 'has been added'); }).on('change', function(path) { log('File', path, 'has been changed'); }).on('unlink', function(path) { log('File', path, 'has been removed'); }).on('unlinkDir', function(path) { log('Directory', path, 'has been removed'); }).on('error', function(error) { log('Error happened', error); }).on('ready', function() { log('Initial scan complete. Ready for changes.'); }).on('raw', function(event, path, details) { log('Raw event info:', event, path, details); })watch
Watch 是另一個監(jiān)聽文件夾改變的Node.JS模塊
安裝
npm install watch npm install watch示例,偵聽所有改變事件
示例,偵聽不同事件
var watch = require('watch') watch.createMonitor('/home/mikeal', function (monitor) {monitor.files['/home/mikeal/.zshrc'] // Stat object for my zshrc.monitor.on("created", function (f, stat) {// Handle new files})monitor.on("changed", function (f, curr, prev) {// Handle file changes})monitor.on("removed", function (f, stat) {// Handle removed files})monitor.stop(); // Stop watching }) 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的使用Node.JS监听文件夹变化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu/deepin 禁用IPV6
- 下一篇: HTML5 WebSockets学习