-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backport graceful-fs update to Gulp 3 #2146
Comments
That's a semver breaking change. We're not doing anything about their issue. |
FYI This has been fixed already - the |
Thanks, I've read that it was fixed but it's only temporary according to this comment:
I suppose it means that it may break again in Node 11 or 12. But yes, it's already fixed in Gulp. |
Or in Node 10. Node 10 will be supported until 2021 (it's LTS) but you can't count on (In fact, you can probably count on it not working for that long.) A way forward for gulp@3 is to back-port the amazing-graceful-fs changes from graceful-fs@4 to graceful-fs@3. I wrote amazing-graceful-fs, I'm willing to help review. |
Gulp 4.0.0 switched its task execution engine from `orchestrator` to `undertaker`. As a result, certain methods and events from Gulp 3.9.1 upon which `slush` depended disappeared: gulpjs/gulp#755 Supporting Gulp 4.0.0 is important because Node 10 broke the `graceful-fs` package upon which Gulp 3.9.1 depends. While there's a workaround (updating the `natives` package), it places a burden on users that still doesn't guarantee that Gulp 3.9.1 will remain future-proof: gulpjs/gulp#2146 (comment) gulpjs/gulp#2162 (comment) nodejs/node#19786 (comment) As it turned out, the changes required to support both versions were fairly straighforward, and should ensure that Slush remains future-proof until the next major Gulp update.
Gulp 4.0.0 switched its task execution engine from `orchestrator` to `undertaker`. As a result, certain methods and events from Gulp 3.9.1 upon which `slush` depended disappeared: gulpjs/gulp#755 Supporting Gulp 4.0.0 is important because Node 10 broke the `graceful-fs` package upon which Gulp 3.9.1 depends. While there's a workaround (updating the `natives` package), it places a burden on users that still doesn't guarantee that Gulp 3.9.1 will remain future-proof: gulpjs/gulp#2146 (comment) gulpjs/gulp#2162 (comment) nodejs/node#19786 (comment) As it turned out, the changes required to support both versions were fairly straighforward, and should ensure that Slush remains future-proof until the next major Gulp update. NOTE: The test tasks are now all asynchronous via a `done` callback, since Gulp 4 doesn't support synchronous tasks. Any synchronous slushfile task will need to be updated.
There is a Node issue reporting that Gulp 3 may not work properly with the upcoming Node 10 release. This is caused by the dependency on
graceful-fs@3
because it monkey-patches some internal modules.gulp@4
does not have this issue because it usesgraceful-fs@4
.I haven't tried to reproduce the issue yet. According to the Node issue, they were able to patch a package (
natives
) to fix the problem but this solution may not be reliable.Would it be possible to issue a patch update to
gulp@3
to usegraceful-fs@4
? Is it a breaking change? Hard to implement?An alternative would be to recommend the usage of
gulp@4
(usingengines.node
?).The text was updated successfully, but these errors were encountered: