每次更改观看的文件时,chokidar 都会变慢
chokidar slows down every time watched files are changed
我使用 gulp 进行构建设置,并使用 chokidar 来侦听文件更改:
var buildWatcher = chokidar.watch(paths, { ignoreInitial: true });
buildWatcher
.on('add', function(filePath) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(filePath) + ' add'));
gulp.start(key + suffix);
})
.on('change', function(filePath) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(filePath) + ' change'));
gulp.start(key + suffix);
})
.on('unlink', function(filePath) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(filePath) + ' unlink'));
gulp.start(key + suffix);
});
我正在努力解决一个问题,例如内存泄漏或某事,即:每次保存文件时,监视进程都会占用更多资源(CPU 在任务管理器中),结果整个 gulp.start 的任务需要更长的时间。启动新 gulp 时,最初的任务 运行 顺利,CPU 使用率低,启动的任务需要几毫秒才能执行。但是保存(即使是同一个文件)几次,CPU 使用率在几秒钟内上升到 100%。
我尝试切换到 gulp.watch (3.9):
gulp.watch(paths, function(event) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(event.path) + ' ' + event.type));
gulp.start(key + suffix);
}).on('error', function(error) {
gulpUtil.log(error);
});
我这里没有这个问题。但是 gulp.watch 不支持监听新文件,这就是我不想使用 chokidar 的原因。
您知道 chokidar 性能问题背后的原因是什么吗?如何诊断?
谢谢
我不知道chokidar的性能如何,但我会建议你使用gulp-watch。
请注意,您需要绝对路径。
还要检查为什么 gulp.watch 不支持 new/removed 文件 here。
我使用 gulp 进行构建设置,并使用 chokidar 来侦听文件更改:
var buildWatcher = chokidar.watch(paths, { ignoreInitial: true });
buildWatcher
.on('add', function(filePath) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(filePath) + ' add'));
gulp.start(key + suffix);
})
.on('change', function(filePath) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(filePath) + ' change'));
gulp.start(key + suffix);
})
.on('unlink', function(filePath) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(filePath) + ' unlink'));
gulp.start(key + suffix);
});
我正在努力解决一个问题,例如内存泄漏或某事,即:每次保存文件时,监视进程都会占用更多资源(CPU 在任务管理器中),结果整个 gulp.start 的任务需要更长的时间。启动新 gulp 时,最初的任务 运行 顺利,CPU 使用率低,启动的任务需要几毫秒才能执行。但是保存(即使是同一个文件)几次,CPU 使用率在几秒钟内上升到 100%。
我尝试切换到 gulp.watch (3.9):
gulp.watch(paths, function(event) {
gulpUtil.log("File event: " + gulpUtil.colors.cyan(path.basename(event.path) + ' ' + event.type));
gulp.start(key + suffix);
}).on('error', function(error) {
gulpUtil.log(error);
});
我这里没有这个问题。但是 gulp.watch 不支持监听新文件,这就是我不想使用 chokidar 的原因。
您知道 chokidar 性能问题背后的原因是什么吗?如何诊断?
谢谢
我不知道chokidar的性能如何,但我会建议你使用gulp-watch。
请注意,您需要绝对路径。
还要检查为什么 gulp.watch 不支持 new/removed 文件 here。