如何在Electron App中观看文件?

时间:2015-06-11 17:32:25

标签: node.js electron

我想使用Chokidar来查看我的应用中的文件。问题是每当您尝试实例化chokidar.watch时,电子都会抛出错误。我想知道这是否是两者之间已知的兼容性问题,以及是否有内置解决方案来解决此问题。到目前为止,Google对于在电子应用中观看文件没有任何好处。仅在使用chokidar对象时才会出现此错误。要求它不会导致问题。

我在渲染器过程中的代码如下。注释掉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编辑器使用文件资源管理器检测文件和文件夹的添加时间,并在侧栏中正确显示最新的文件夹信息。如果原子能做到,我的应用也可以!

1 个答案:

答案 0 :(得分:1)

这可能会破坏电子远程对象的所有规则 - 但您可以尝试访问chokidar的远程版本:

var chokidar = global\['require'\]('remote').require('chokidar');