gulp v5.0.0
We've tried to provide a high-level changelog for gulp v5 below, but it
doesn't contain all changes from the 60+ dependencies that we maintain.
Please see individual changelogs to drill down
into all changes that were made.
⚠ BREAKING CHANGES
- Drop support for Node.js <10.13
- Default stream encoding to UTF-8
- Standardized on
anymatchlibrary for globbing paths. All globs should work the same betweensrcandwatchnow! - Removed support for ordered globs. This aligns with the chokidar globbing implementation. If you need your globs to be ordered, you can use
ordered-read-stream - All globs and paths are normalized to unix-like filepaths
- Only allow JS variants for
.gulp.*config files - Removed support for alpha releases of v4 from
gulp-cli - Removed the
--verifyflag - Renamed the
--requireflag to--preloadto avoid conflicting with Node.js flags - Removed many legacy and deprecated loaders
- Upgrade to chokidar v3
- Clone
Vinylobjects with stream contents usingteex, but no longer wait for all streams to flow before cloned streams will receive data - Stop using
process.umask()to make directories, instead falling back to Node's default mode - Throw on non-function, non-string option coercers
- Drop support of Node.js snake_case flags
- Use a Symbol for attaching the
gulplognamespace to the store - Use a Symbol for attaching the
gulplogstore to the global - Use sha256 to hash the
v8flagscache into a filename
Features
- Streamlined the dependency tree
- Switch all streams implementation to Streamx
- Rewrote
glob-streamto use a custom directory walk that relies on newer Node.js features and is more performant than old implementation - Implement translation support for all CLI messages and all messages passing through gulplog
- Allow users to customize or remove the timestamp from their logs
- Upgraded gulplog to v2. Messages logged via v1 will also display a deprecated warning. Plugins should update to v2 as the community upgrades to gulp 5
- Added support for
gulpile.cjsandgulpfile.mjs - Add support for
swc,esbuild,sucrase, andmdxloaders - Provide an ESM export (#2760) (b00de68)
- Support sourcemap handling on streaming
Vinylcontents - Support
extendssyntax for.gulp.*config file - Allow overriding
gulpfileandpreloadsvia.gulp.*config file
Bug Fixes
- Resolve bugs related to symlinks on various platforms
- Resolved some reported ReDoS CVEs and improved performance in glob-parent
- Rework errors surfaced when encountering files or symlinks when trying to create directories
- Ensure watch allows japanese characters in globs (72668c6)
- Ensure watch does not trigger on negated globs (72668c6)
- Improve handling of BOM at the beginning of a stream
- Properly handle function coercer in array of option coercers
- Fork
to-absolute-globto:- Check negative patterns before trimming
- Ensure glob-like characters are escaped in cwd & root options
- Resolve
../at the beginning of globs
Miscellaneous Chores
- Remove lazystream dependency
- Updated various stream test suites to test against Node.js core
stream,readable-stream, andstreamx - Normalize repository, dropping node <10.13 support (#2758) (72668c6)
Individual Changelogs
We created and maintain various projects that gulp depends upon. You can find their changelogs linked below:
- undertaker
- vinyl-fs
- glob-stream
- gulp-cli
- interpret
- glob-parent
- glob-watcher
- vinyl
- fs-mkdirp-stream
- lead
- vinyl-sourcemap
- to-through
- resolve-options
- remove-bom-stream
- value-or-function
- now-and-later
- @gulpjs/to-absolute-glob
- fined
- mute-stdout
- semver-greatest-satisfied-range
- flagged-respawn
- rechoir
- gulplog
- glogg
- @gulpjs/messages
- sparkles
- liftoff
- v8flags
- bach
- undertaker-registry
- async-settle
- last-run
- async-done
- replace-homedir