When engineVersion is greater than or equal to 3.1, use __SetAttribute to set text attribute for text node instead of creating a raw text node. (#1880)
Add react-compiler-runtime to resolve.dedupe. (#1269)
With this change you can setup React Compiler for ReactLynx by pluginBabel:
Updated dependencies [e7d186a, 0d7a4c3]:
96545dd]:
Fix using wrong version of @lynx-js/react/refresh. (#1756)
Updated dependencies []:
19f823a]:
BREAKING CHANGE: Remove the enableParallelElement and pipelineSchedulerConfig options. (#1705)
Since the thread element resolution is still in experimental stage and may have stability risks, it will be disabled by default after this change.
BREAKING CHANGE: Remove the enableICU option. (#1800)
Be compat with @lynx-js/react v0.114.0 (#1781)
Updated dependencies [24100ab, 24100ab, d0ef559]:
Fix using wrong version of @lynx-js/react/worklet-runtime. (#1711)
Be compat with @lynx-js/react v0.113.0 (#1667)
Disable builtin:lightningcss-loader for environments.web. (#1732)
Updated dependencies [5ad38e6, 69b3ae0, 69b3ae0, c2f90bd]:
Support using multiple times in different environments. (#1498)
Support caching Lynx native events when chunk splitting is enabled. (#1370)
When performance.chunkSplit.strategy is not all-in-one, Lynx native events are cached until the BTS chunk is fully loaded and are replayed when that chunk is ready. The firstScreenSyncTiming flag will no longer change to jsReady anymore.
Updated dependencies [f0d483c, e4d116b, d33c1d2]:
output.inlineScripts defaults to false when chunkSplit strategy is not 'all-in-one' (#1504)
Updated dependencies [51a0b19, b391ef5]:
c8ce6aa]:
e9edca0, 6f37db2]:
Be compat with @lynx-js/react v0.112.0 (#1323)
Fix not having profile in development by default. (#1306)
Updated dependencies [fcafd54, fe38de5, 7cd5ea2]:
Fix "TypeError: cannot read property 'call' of undefined" error during HMR updates. (#1304)
Supports extractStr for large JSON (#1230)
Change extractStr to false when performance.chunkSplit.strategy is not all-in-one. (#1251)
Updated dependencies [cb7feb6, ec7228f]:
Support experiments.typeReexportsPresence. (#1246)
Updated dependencies [d513dd9]:
Be compat with @lynx-js/react v0.111.0 (#204)
Updated dependencies [99a3557]:
Avoid IIFE in main-thread.js to resolve memory leak when using <list />. (#1176)
Enable fine-grained control for output.inlineScripts (#883)
Updated dependencies [51cb73d, 69fb042, a7e8b5b]:
Support @lynx-js/react v0.110.0. (#770)
Updated dependencies [f84a1cc, 0d151db, 0d151db, 51676ed, 0d151db, a43ae05, 0a0ef40, 9b61210]:
Better zustand support by creating an alias for use-sync-external-store. (#980)
See lynx-family/lynx-stack#893 for more details.
Updated dependencies [acc0d80]:
Fix lazy bundle build failed on Rspeedy v0.9.8 (with output.iife: true). (#972)
Updated dependencies [81361f3, 7097f52, 43cd520]:
The default value of output.inlineScripts should be true on @lynx-js/rspeedy <= v0.9.6. (#923)
Updated dependencies []:
jsx option. (#903)Support output.inlineScripts, which controls whether to inline scripts into Lynx bundle (.lynx.bundle). (#874)
Only background thread scripts can remain non-inlined, whereas the main thread script is always inlined.
example:
Support @lynx-js/react v0.109.0. (#840)
Use WebEncodePlugin instead of WebWebpackPlugin. (#904)
Updated dependencies [7beb35e, b6e27da, 5ddec12, 77524bc, fdab5dc, ff63b58, fdab5dc, 2b83934, 3520031]:
e599635, c38c737, d16522e]:
Fix runtime error: "SyntaxError: Identifier 'i' has already been declared". (#651)
Enable runtime profiling when performance.profile is set to true. (#722)
fix: resolve page crash on development mode when enabling experimental_isLazyBundle: true (#653)
Support @lynx-js/react v0.108.0. (#649)
Updated dependencies [ea4da1a, ca15dda, f8d369d, ea4da1a]:
Support @lynx-js/react v0.107.0 (#438)
fix(web): :root not work on web platform (#607)
Note: To solve this issue, you need to upgrade your react-rsbuild-plugin
Refactor: Replace built-in background-only implementation with npm package (#602)
Previously we maintained custom files:
empty.ts for background threaderror.ts for main thread validationNow adopting the standard background-only npm package
fix(web): css selector not work for selectors with combinator and pseudo-class on WEB (#608)
like .parent > :not([hidden]) ~ :not([hidden])
you will need to upgrade your react-rsbuild-plugin to fix this issue
Updated dependencies [6a5fc80, 06bb78a, f3afaf6, bf9c685, 5269cab]:
Support overriding SWC configuration. (#563)
Now you can override configuration like useDefineForClassFields using tools.swc.
Updated dependencies [f1ca29b]:
ea42e62, 12e3afe]:
fix: add enableCSSInvalidation for encodeCSS of css HMR, this will fix pseudo-class (such as :active) not working in HMR. (#435)
Disable module.generator.json.JSONParse option as it increases the bundle size of main-thread.js. For more detail, please see this issue. (#402)
Updated dependencies [3e7988f, 7243242]:
feat: add extractStr option to pluginReactLynx (#391)
Convert background-only files from js to ts (#346)
Updated dependencies [f849117, d730101, 42217c2, f03bd4a]:
Support @lynx-js/react v0.106.0. (#239)
Fix the issue where the canary version of React was not included in the rule.include configuration. (#275)
Updated dependencies [ba26a4d, 462e97b, aa1fbed, d2d55ef, 6af0396]:
Avoid entry IIFE in main-thread.js (#206)
Enable CSS minification for scoped CSS. (#205)
Should generate .rspeedy/[name]/main-thread.js instead of .rspeedy/[name]__main-thread/main-thread.js (#180)
Updated dependencies [984a51e, 5e01cef, 315ba3b, 315ba3b]:
Support NPM provenance. (#30)
fix(rspeedy/plugin-react): mkdir main:background fails in windows (#76)
fix(rspeedy/plugin-react): use path.posix.join for backgroundName to ensure consistent path separators across platforms. (#122)
Updated dependencies [c617453, 870106f, ea82ef6]:
targetSdkVersion has been deprecated. Please use engineVersion instead, as targetSdkVersion is now an alias for engineVersion.@lynx-js/react v0.105.0targetSdkVersion to 3.2.environment.lynx or environment.web, the default value of output.filename now is [name].[platform].bundle.@lynx-js/react v0.104.0e2e23e2: BREAKING CHANGE: Change the default output.filename to [name].lynx.bundle.
a589e2e: BREAKING CHANGE: Enable CSS minification by default.
You may turn it off using output.minify.css: false:
Or you may use @rsbuild/plugin-css-minimizer to use cssnano as CSS minimizer.
enableICU to the options of pluginReactLynx, and change the default value to false.background.js.map.7b84edf: feat(web): introduce new output chunk format
39efd7c: Change enableRemoveCSSScope defaults from undefined to true, now enableRemoveCSSScope can be:
true (by default): All CSS files are treated as global CSS.false: All CSS files are treated as scoped CSS, and only take effect in the component that explicitly imports it.undefined: Only use scoped CSS for CSS Modules, and treat other CSS files as global CSS. Scoped CSS is faster than global CSS, thus you can use CSS Modules to speedy up your CSS if there are performance issues.f1d6095: Add pipelineSchedulerConfig option.
Updated dependencies [39efd7c]
Updated dependencies [a2f8bad]
Updated dependencies [3bf5830]
Updated dependencies [7b84edf]
Updated dependencies [f1d6095]
e8039f2: Add defineDCE in plugin options. Often used to define custom macros.
Different from define provided by bundlers like webpack, defineDCE works at transform time and a extra DCE (Dead Code Elimination) pass will be performed.
For example, import initialized by dead code will be removed:
will be transformed to:
Updated dependencies [8dd6cca]
Updated dependencies [e8039f2]
958efda: feat(web): bundle background.js into main-thread.js for web
To enable this feature:
all-in-onemode:'production' to buildThe output will be only one file.
958efda: fix(web): do not set publicPath to auto for all-in-one chunk
Updated dependencies [958efda]
Updated dependencies [89248b7]
Updated dependencies [bf9ec8c]
a30c83d: Add compat.removeComponentAttrRegex.
NOTE: This feature is deprecated and will be removed in the future. Use CodeMod instead.
5f8d492: BREAKING CHANGE: Require @lynx-js/react v0.103.0.
5f8d492: Deprecate compat.simplifyCtorLikeReactLynx2
36f8e4c: Add enableAccessibilityElement.
b37e3d9: Enforced build-time errors for importing background-only modules in the main-thread.
use import 'background-only' to mark a module as restricted to the background environment. Any attempt to import such a module in the main thread will result in a build-time error.
For example:
If bar is called in main-thread, build time error will be triggered.
'background-only' cannot be imported from a main-thread module.
Additionally, rspeedy now supports stats.modulesSpace, which provides detailed dependency tracing to pinpoint the exact file or dependency causing the error.
Updated dependencies [36f8e4c]
Updated dependencies [a30c83d]
Updated dependencies [5f8d492]
Updated dependencies [84cbdfe]
Updated dependencies [a30c83d]
Updated dependencies [5f8d492]
Updated dependencies [5f8d492]
@lynx-js/react v0.102.0options.shake to allow custom package names to be shaken.@lynx-js/react v0.101.091c267b: feat: enable auto publicPath for environment.web
In many case, users cannot set a correct output.assertPrefix configuration. Typically those chunks will be uploaded after chunk dumped. Developers may be not able to know the url before those chunks are uploaded.
In this commit, we allow webpack to infer the correct public path by the import.meta.url.
587a782: BRAKING CHANGE: Require @lynx-js/react v0.100.0
@lynx-js/react optional.