4.1.0-next.3
4.1.0-next.3 (2026-09-14)
v5.111.0
-
Enable
output.moduleby default withfutureDefaultson ESM-capable targets. (by @alexander-akait in #22088) -
Remove
experiments.outputModule, setoutput.moduleto emit ESM instead. (by @alexander-akait in #22011) -
Add
output.copyto copy files and directories into the output directory. (by @alexander-akait in #21938) -
Accept a file URL in any spelling Node reads where an absolute path is taken. (by @alexander-akait in #22012)
-
Minify inline CSS and JSON via
renderEmbeddedSource, exporting webpack's own. (by @alexander-akait in #21993) -
Export
cssMinifyandhtmlMinifyoncss.syntaxandhtml.syntax. (by @alexander-akait in #21953) -
Make
processResultasync and let a tap rename the asset it rewrote. (by @alexander-akait in #21854) -
Lower a CSS spelling a target cannot read and write a color fallback before one. (by @alexander-akait in #21926)
-
Allow optional filesystem cache build dependencies. (by @xiaoxiaojx in #21849)
-
Add
output.environment.topLevelAwaitand await every async ESM entry. (by @alexander-akait in #21915) -
Add
unusedSymbolsandpseudoClasses, and evaluate a CSS color function. (by @alexander-akait in #21927) -
Drop an implied shorthand slot, fold a math function, tighten color conversion. (by @alexander-akait in #21929)
-
Add
module.parser.javascript.specNamespaceObjectfor spec namespace objects. (by @alexander-akait in #22049) -
Drop what is already said or only a gone engine reads, add
lowerUnsupported. (by @alexander-akait in #21931) -
Add
normalizeUrlAttributes,mergeScripts, boolean and token switches. (by @alexander-akait in #21960) -
Minify an event handler attribute, and name the production each script body is. (by @alexander-akait in #21968)
-
Add source-map, asset, module, bailout, federation hints; group config checks. (by @alexander-akait in #21961)
-
Lower CSS nesting,
:dir()and custom at-rules; gate case folding and escapes. (by @alexander-akait in #21950) -
Add
optimization.minimize.css.mergeDistantRulesto join rules across a gap. (by @alexander-akait in #21969)
-
Minify an embedded body through the embedded path, dropping three html options. (by @alexander-akait in #21936)
-
Take a minified
styleattribute's answer whatever quoting it needs. (by @alexander-akait in #21936) -
Name chunk imports in the chunk loader, not at each import site. (by @alexander-akait in #22076)
-
Repair hashed names; under HMR bake hashed url maps and reload moved css names. (by @alexander-akait in #21916)
-
Enable
output.moduleformoduleandmodern-modulelibrary types. (by @alexander-akait in #22071) -
Name an anonymous
export default classbefore its static initializers run. (by @alexander-akait in #21910) -
Throw on a non-optional read past an undefined
DefinePluginmember. (by @alexander-akait in #22017) -
Reject a fulfilled async cycle member with the cycle's evaluation error. (by @alexander-akait in #21921)
-
Escape external requests in generated ESM imports and star reexports. (by @bjohansebas in #22078)
-
Fix stack overflows in ESM library star reexport cycles with externals. (by @bjohansebas in #22080)
-
Preserve live bindings when reexporting external ESM exports. (by @bjohansebas in #22082)
-
Use configured external requests in ESM star reexports; reject property paths. (by @bjohansebas in #22079)
-
Preserve import attributes on ESM library star reexports of externals. (by @bjohansebas in #22081)
-
Fail the build when a runtime module's code generation throws while hashing. (by @alexander-akait in #22034)
-
Settle a css chunk load without a DOM where its stylesheet cannot be read. (by @alexander-akait in #21970)
-
Await a deferred import's async dependency that is evaluating-async. (by @alexander-akait in #21934)
-
Keep a color the CSS minifier would round where its channels are read back. (by @alexander-akait in #21923)
-
Refresh a cached module's
resolveOptionsfrom the factory, not the pack. (by @hai-x in #21945) -
Read a
<script type>decoded, so a reference-spelled type is minified. (by @alexander-akait in #21933) -
Read the extension out of a path-scoped rule's alternation, class or braces. (by @alexander-akait in #21946)
-
Keep an HTML attribute name or list token holding a foreign template delimiter. (by @alexander-akait in #22018)
-
Answer a name a module does not export from the spec namespace. (by @alexander-akait in #22092)
-
Give a deferred namespace the spec's exotic shape when the exports are known. (by @alexander-akait in #21939)
-
Give a JSON, text or CommonJS namespace the spec's exotic shape and identity. (by @alexander-akait in #22087)
-
Report a missing asset instead of a code generation deadlock. (by @alexander-akait in #21992)
-
Keep a concatenated CommonJS reference a separate statement, guarding it once. (by @alexander-akait in #21962)
-
Keep CSS module exports for a direct loader
importModule()call. (by @alexander-akait in #22047) -
Fix
import.metaandrequire.main, and scope-hoistimport.meta.main. (by @alexander-akait in #21973) -
Honor
resolve.fileSystemand say wheremodule.exprContextCriticalmoved. (by @alexander-akait in #22091) -
Release stale compilation data from nested children and idle watch builds. (by @alexander-akait in #22096)
-
Resolve a
@valueonce and then localize it, wherever it names an identifier. (by @alexander-akait in #22036) -
Release the printed-text store's text when the CSS printer drops it. (by @alexander-akait in #21958)
-
Skip a foreign dependency whose
isLazyis a flag when walking a lazy barrel. (by @alexander-akait in #21998) -
Move diagnostics to
buildInfo.diagnostics, persisting parse-time bailouts. (by @hai-x in #22055) -
Invalidate consumer codegen when an inlined export value changes. (by @xiaoxiaojx in #22020)
-
Rebuild DelegatedModule when DLL manifest metadata changes. (by @xiaoxiaojx in #22028)
-
Keep a CSS layer's blocks in order where one of them streams. (by @alexander-akait in #22044)
-
Refuse inlining const exports across sync cycles with binding reads. (by @xiaoxiaojx in #22085)
-
Escape a text run ending in
</, which the tag after it made a comment of. (by @aryanraj45 in #22086) -
Skip JS render sentinel scans on chunks without HTML. (by @xiaoxiaojx in #21974)
-
Minify an attribute by what its value says, not by how the source spelled it. (by @aryanraj45 in #22095)
-
Cut allocation and scanning in the CSS and HTML printers, output unchanged. (by @alexander-akait in #21997)
-
Emit less chunk-loading runtime. (by @alexander-akait in #22094)
-
Recognize the reflected attributes of
frame,frameset,marqueeanddir. (by @alexander-akait in #22003) -
Drop the
neo-asyncdependency in favor of a faster built-in async helper. (by @alexander-akait in #21959) -
Speed up cache serialization by cutting per-object lookups and call frames. (by @alexander-akait in #21994)
-
Update dependencies and match the
ReadFileSynctype to Node.js typings. (by @dependabot in #21919) -
Match acorn on
**arrows, LS/PS cooking, string export names,programreuse. (by @alexander-akait in #21666) -
Parse a regexp literal the running engine cannot build, and keep locations. (by @alexander-akait in #22009)
-
Parse without acorn, serialize parse-error locations, trim walker allocations. (by @alexander-akait in #21667)
-
Drop the
acorndependency in favor of webpack's own JavaScript parser. (by @alexander-akait in #22042) -
Name HTML chunks after their tags' urls, drop the JS copy, type
text/html. (by @alexander-akait in #22008)
6.6.4
- 🗑 Deprecate legacy Avatar
GroupProps, BackTop and FloatButtonBackTopProps, InputGroupProps, MentionsOptionProps, and SelectOptionPropstypes in favor ofGetPropsor option-derived types. #58949 @li-jia-nan - 🐞 Fix AutoComplete missing
classNames.clearandstyles.clearsemantic customizations for the clear button. #59245 @lazerg - Table
- 🐞 Fix Table
filteredValuebeing ignored when responsive columns are hidden. #59198 @QDyanbing - 🐞 Fix Table ignoring
pagination.classNamesandpagination.stylessemantic customizations. #59267 @QDyanbing - 🐞 Fix Table virtual cell content not being vertically centered. #59260 @QDyanbing
- 🐞 Fix Table
- Modal
- 🐞 Fix Modal
okTextandcancelTextfalling back to default text for falsyReactNodevalues. #59254 @QDyanbing - 🐞 Fix Modal not triggering
onCancelwhencancelButtonProps.onClickis provided. #59255 @QDyanbing
- 🐞 Fix Modal
- ColorPicker
- 🐞 Fix ColorPicker clear control remaining interactive and showing hover styles when disabled. #59164 @dogledogle
- 🐞 Fix ColorPicker modifying
presetsand crashing when preset items are frozen. #59272 @QDyanbing
- 🐞 Fix Splitter panel sizes exceeding their
minandmaxconstraints when the container resizes. #59084 @QDyanbing - 🐞 Fix Segmented selected item text color lagging behind the thumb animation when custom
itemSelectedBganditemSelectedColortokens are used. #59046 @EmilyyyLiu - 🐞 Fix Transfer restoring stale selections after
dataSourceitemkeytypes change. #59166 @QDyanbing - 🐞 Fix FloatButton.Group menu flickering when moving the pointer from the trigger to the menu with
trigger="hover". #59246 @QDyanbing - 🐞 Fix Form vertical Form.Item controls shrinking inside horizontal layouts. #59263 @QDyanbing
- 🐞 Fix Tabs more dropdown ignoring
styles.popup.root. #59221 @giaBaoJS - 🐞 Fix ConfigProvider failing to inherit
zeroRuntimein nested themes wheninheritisfalse. #59250 @QDyanbing
- 🗑 废弃 Avatar
GroupProps、BackTop 和 FloatButtonBackTopProps、InputGroupProps、MentionsOptionProps与 SelectOptionProps旧类型,建议改用GetProps或从选项推导的类型。#58949 @li-jia-nan - 🐞 修复 AutoComplete 缺失清除按钮
classNames.clear和styles.clear语义化配置的问题。#59245 @lazerg - Table
- 🐞 修复 Table 响应式列隐藏后
filteredValue失效的问题。#59198 @QDyanbing - 🐞 修复 Table 忽略
pagination.classNames和pagination.styles语义化配置的问题。#59267 @QDyanbing - 🐞 修复 Table 虚拟滚动单元格内容未垂直居中的问题。#59260 @QDyanbing
- 🐞 修复 Table 响应式列隐藏后
- Modal
- 🐞 修复 Modal 的
okText和cancelText为假值ReactNode时被默认文案覆盖的问题。#59254 @QDyanbing - 🐞 修复 Modal 配置
cancelButtonProps.onClick时不触发onCancel的问题。#59255 @QDyanbing
- 🐞 修复 Modal 的
- ColorPicker
- 🐞 修复 ColorPicker 禁用时清除控件仍可交互并显示悬浮样式的问题。#59164 @dogledogle
- 🐞 修复 ColorPicker 修改
presets并在预设项被冻结时崩溃的问题。#59272 @QDyanbing
- 🐞 修复 Splitter 容器尺寸变化时面板尺寸超出
min和max约束的问题。#59084 @QDyanbing - 🐞 修复 Segmented 使用自定义
itemSelectedBg和itemSelectedColorToken 时,选中项文字颜色滞后于滑块动画的问题。#59046 @EmilyyyLiu - 🐞 修复 Transfer 的
dataSource项key类型变化后恢复旧选中状态的问题。#59166 @QDyanbing - 🐞 修复 FloatButton.Group 使用
trigger="hover"时鼠标从触发按钮移向菜单出现闪烁的问题。#59246 @QDyanbing - 🐞 修复 Form 在水平布局中嵌套的垂直 Form.Item 控件高度被压缩的问题。#59263 @QDyanbing
- 🐞 修复 Tabs 折叠下拉菜单未应用
styles.popup.root的问题。#59221 @giaBaoJS - 🐞 修复 ConfigProvider 在嵌套主题中
inherit为false时未继承zeroRuntime的问题。#59250 @QDyanbing
v2.15.0
- A filename or comment stored without the UTF-8 flag is decoded as UTF-8 when its bytes are valid UTF-8 and no
filenameEncodingorcommentEncodingoption is set, instead of IBM Code Page 437. macOS Archive Utility,ditto, the macOS build of Info-ZIPzipand Java 6 write such names, which read back as mojibake until now while 7-Zip, libarchive andjarshow them right. Pure ASCII names are unchanged, an explicit encoding option disables the detection, and a valid Info-ZIP Unicode Path extra field still wins - The WebAssembly deflate runs in gzip mode and reads the CRC-32 of the entry from the trailer, as the native
CompressionStreamroute already did, so the separate CRC-32 pass over the input on the JavaScript thread is gone for that codec: about 1 % of the time of a 20 MB text entry on Node.js. On the native-only build, the route wrappinggzipwheredeflate-rawis missing reuses the CRC-32 it computes for the trailer instead of running a second pass
filenameValidationrejects, under"balanced", a".."path component delimited by backslashes ("..\\file.txt", which a Windows host resolves as a parent directory) and a name starting with a single backslash (a root-relative or UNC path on Windows), and under"strict"a name holding a NUL character. A backslash is otherwise still a valid filename character- A custom
ReaderwhosereadUint8Arrayreturns a Node.jsBufferreads archives again. The end of central directory record was kept asBuffer#slice(...).buffer, a view on the whole scan window or on theBufferpool, so its fields were read from the wrong bytes and every archive failed withERR_SPLIT_ZIP_FILEor "File format is not recognized", since 2.8.30 - Retaining an
Entryno longer retains the whole central directory (#682).rawFilename,rawExtraFieldandrawCommentwere views on the buffer holding the directory, as was the digital signature, so one entry kept alive pinned the metadata of every other one, 3.9 MB in the reporter's archive, and the.bufferof those fields exposed the reader's buffer, e.g. a Node.jsBufferpool. Each entry now owns one copy of its three fields terminateWorkers()runs in-process the requests queued while every worker slot was busy and resolves once they have finished. A request queued behind the call used to get a fresh worker after the call had resolved, so aZipReaderreading two entries at once withmaxWorkers: 1kept a worker alive past the call, and the WebAssembly builds reset the module under it. Writers were not affected: everyadd()waits for a slot before asking the pool
checkAmbiguitydocuments that duplicate filenames are compared exactly, afternormalizeFilename: two names differing by letter case or by Unicode normalization form are distinct entries, even though they collide on a case-insensitive or normalizing filesystemBENCHMARKS.mdstates what the rows of a fresh process include, the JIT warm-up of each library and, for the WebAssembly rows, the module instantiation of about 20 ms, and that no decompression row verifies the CRC-32: zip.js and jszip leave the check off by default and fflate has none on read. Turning it on in zip.js adds one pass over the output, about 15 ms per 20 MB
- The worker and WebAssembly modules embedded in the bundles are minified without property mangling before the main bundles mangle them, so the mangled-name guard no longer reports a spurious single-letter name on every regeneration. The bundles are unchanged within a few bytes
- New tests pin the unflagged UTF-8 names (zip.js's own
useUnicodeFileNames: falseoutput, a CP437 name, an explicitfilenameEncodingwinning and a realdittoarchive), the ownership of the raw metadata against a pooled reader, the gzip trailer on the WebAssembly codec with the routes asserted through spies, the termination with a queued request, the clamped date warning under every timestamp option combination, the exact exported size when no deflate implementation is reachable, and the three worker options read as truthy values
Full Changelog: https://github.com/gildas-lormeau/zip.js/compare/v2.14.1...v2.15.0
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com
eslint-plugin-formatjs: 6.7.0-rc.0
6.7.0-rc.0 (2026-09-13)
@formatjs/intl: 5.0.0-rc.0
5.0.0-rc.0 (2026-09-13)
- @formatjs/intl: @formatjs/intl and react-intl formatter generics now use <Values, RichOutput>. Migrate explicit rich-output calls to formatMessage<Values, RichOutput> or $t<Values, RichOutput>.
- intl-messageformat: intl-messageformat, @formatjs/intl, and react-intl now require TypeScript 5.4 or newer, including projects that do not enable typed messages.
- @formatjs/intl: put ICU contracts before rich output types (#7372) (c388333)
- intl-messageformat: require TS 5.4 and add typed ICU contracts (#7370) (e8620f8)
- The following workspace dependencies were updated
- dependencies
- intl-messageformat bumped to 12.0.0-rc.0
- dependencies
vue-intl: 7.2.20-rc.0
7.2.20-rc.0 (2026-09-13)
- The following workspace dependencies were updated
- dependencies
- @formatjs/intl bumped to 5.0.0-rc.0
- dependencies
@formatjs/svelte-intl: 1.1.20-rc.0
1.1.20-rc.0 (2026-09-13)
- The following workspace dependencies were updated
- dependencies
- @formatjs/intl bumped to 5.0.0-rc.0
- dependencies
react-intl: 11.0.0-rc.0
11.0.0-rc.0 (2026-09-13)
- @formatjs/intl: @formatjs/intl and react-intl formatter generics now use <Values, RichOutput>. Migrate explicit rich-output calls to formatMessage<Values, RichOutput> or $t<Values, RichOutput>.
- intl-messageformat: intl-messageformat, @formatjs/intl, and react-intl now require TypeScript 5.4 or newer, including projects that do not enable typed messages.
- @formatjs/intl: put ICU contracts before rich output types (#7372) (c388333)
- intl-messageformat: require TS 5.4 and add typed ICU contracts (#7370) (e8620f8)
- The following workspace dependencies were updated
- dependencies
- @formatjs/intl bumped to 5.0.0-rc.0
- intl-messageformat bumped to 12.0.0-rc.0
- dependencies
intl-messageformat: 12.0.0-rc.0
12.0.0-rc.0 (2026-09-13)
- intl-messageformat: intl-messageformat, @formatjs/intl, and react-intl now require TypeScript 5.4 or newer, including projects that do not enable typed messages.