electron-userland / electron-compile

DEPRECATED: Electron supporting package to compile JS and CSS in Electron applications
1.01k stars 97 forks source link

File watching does not work correctly with Vim #193

Open fvgs opened 7 years ago

fvgs commented 7 years ago

I'm using electron-compile via electron-forge. I believe the file watching for hot-module-replacement is not playing nicely with the backupcopy option in Vim. It fails to detect changes for subsequent writes after the first write to a file. I don't suppose this issue is unique to Vim, as other text editors offer similar features.

I tested out the solution in #190 which uses chokidar. The use of chokidar improves upon the current use of fs.watch() in that every write is now detected. However, the use of chokidar is not advisable. Upon removing the throttling (debouncing) as discussed in #190, I found chokidar, using Vim on macOS, produces multiple events for a single write. I also found keeping the throttling incurs a noticeable performance decrease in terms of the delay between writing to the file and seeing the changes in the application.

I am creating a PR to address the failure to detect file changes, multiple change events, and performance issues due to throttling, which should also address #189.

Mike-Dax commented 7 years ago

@fvgs Out of interest do you have the same multiple events problem with a regular webpack HMR type project? (since it uses chokidar under the hood)

fvgs commented 7 years ago

I haven't tested webpack's HMR. But I've encountered similar issues with chokidar in the past. See remy/nodemon#763 for an example. When using chokidar directly, I've had the same multiple events problem occur. I've found gaze to work reliably so far.