2

我想使用 Chokidar 在我的应用程序中观看文件。问题是当你尝试实例化 chokidar.watch 时,electron 会抛出一个错误。我想知道这是否是两者之间已知的兼容性问题,以及是否有解决此问题的内置解决方案。到目前为止,谷歌在查看电子应用程序中的文件方面一无所获。该错误仅在使用 chokidar 对象时发生。要求它不会导致问题。

我在渲染器进程中的代码如下。注释掉 var watcher 代码将完全消除控制台错误。代码直接来自他们的文档。

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 编辑器检测何时使用文件资源管理器添加文件和文件夹,并在侧边栏中适当地显示最新的文件夹信息。如果 atom 可以做到,我的应用程序也可以!

4

1 回答 1

1

这可能违反了电子远程对象的所有规则 - 但您可以尝试访问远程版本chokidar

var chokidar = global\['require'\]('remote').require('chokidar');
于 2015-11-09T09:31:24.540 回答