2
我想使用Chokidar在我的應用程序中觀看文件。問題是,只要你嘗試實例化chokidar.watch,電子就會拋出一個錯誤。我想知道這是否是兩者之間的已知兼容性問題,以及是否有內置解決方案來解決此問題。 Google迄今爲止沒有在電子應用程序中觀看文件。只有在使用chokidar對象時纔會出現此錯誤。要求它不會導致問題。如何在Electron App中查看文件?
我在渲染過程中的代碼如下。註釋掉var觀察者代碼將完全消除控制檯錯誤。代碼直接來自他們的文檔。
var chokidar = remote.require('chokidar');
chokidar.watch('.', {ignored: /[\/\\]\./}).on('all', function(event, path) {
console.log(event, path);
});
控制檯錯誤:
Uncaught Error: criterion.test is not a function
TypeError: criterion.test is not a function
at testCriteria (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/node_modules/anymatch/index.js:29:26)
at Array.some (native)
at anymatch (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/node_modules/anymatch/index.js:59:48)
at EventEmitter.FSWatcher._isIgnored (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/index.js:221:15)
at EventEmitter.NodeFsHandler._addToNodeFs (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/lib/nodefs-handler.js:429:12)
at EventEmitter.<anonymous> (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/index.js:410:12)
at /Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/node_modules/async-each/index.js:16:7
at Array.forEach (native)
at each (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/node_modules/async-each/index.js:15:11)
at EventEmitter.FSWatcher.add (/Users/guest/Desktop/prototype/yeti-launch/node_modules/chokidar/index.js:409:5)
如何添加看我的項目中的任何意見是非常讚賞。 Atom編輯器使用文件資源管理器檢測文件和文件夾的添加時間,並在側邊欄中適當地顯示最新的文件夾信息。如果原子能做到這一點,我的應用程序也能做到!
我的解決方案迄今已經實施的主要過程chokidar和使用含有IPC消息路徑被監視到主進程。一個新的文件/文件夾觸發Webview將回調發送回呈現器。這並不完美......主要是因爲Chokidar堅持在每次檢測到新鏈接/非鏈接文件夾時發送多個事件......但這是一項改進。這是我的應用程序所必需的,因爲用戶可以爲保存的文件選擇默認目錄。該應用程序需要能夠檢測並顯示在應用程序之外添加的文件(實時)。它是一種痛苦。 – CodeManiak
也許這是相關的? http://ourcodeworld.com/articles/read/160/watch-files-and-directories-with-electron-framework – cladelpino