Skip to content

[pull] main from lynx-family:main#585

Merged
pull[bot] merged 1 commit into
colinaaa:mainfrom
lynx-family:main
Apr 16, 2026
Merged

[pull] main from lynx-family:main#585
pull[bot] merged 1 commit into
colinaaa:mainfrom
lynx-family:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 16, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

…ses (#2464)

## Summary

Two bugs that prevented `withLynxConfig()` from working in rstest
environments:

- **`@lynx-js/react-alias-rsbuild-plugin`**: `pluginReactAlias` only
aliased `@lynx-js/react/jsx-runtime` and
`@lynx-js/react/jsx-dev-runtime` inside layer-specific rules
(`issuerLayer: BACKGROUND/MAIN_THREAD`). In rstest mode there are no
layers, so JSX transformed by the testing loader—which emits `import {
jsx } from '@lynx-js/react/jsx-runtime'`—could not be resolved (`Cannot
find module '@lynx-js/react/jsx-runtime'`). Added global fallback
aliases pointing to the background jsx-runtime.

- **`@lynx-js/react-webpack-plugin` (testing loader)**: The testing
loader forwarded `compat` directly to `transformReactLynxSync` without
normalization. When `compat` is supplied as a partial object, the
required `target` field is absent and the WASM transform throws `Error:
Missing field 'target'`. Added the same normalization already present in
`getCommonOptions` for the background/main-thread loaders.

## Test plan

- [ ] `pnpm --filter @lynx-js/react-alias-rsbuild-plugin test` — new
assertions verify `@lynx-js/react/jsx-runtime` and
`@lynx-js/react/jsx-dev-runtime` are present as global aliases
- [ ] `pnpm --filter @lynx-js/react-webpack-plugin test` — new
`test/testing-loader.test.ts` covers partial compat (missing `target`),
`compat: false`, and missing compat cases

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Ensure JSX runtime modules (@lynx-js/react/jsx-runtime and
jsx-dev-runtime) resolve in testing/rstest mode via fallback aliasing.
* Normalize partial compat configurations in the testing loader so
required fields (e.g., target) are filled and WASM transform failures
are prevented.

* **Tests**
* Added tests verifying loader behavior with partial, false, and omitted
compat options and updated alias snapshots.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@pull pull Bot requested a review from colinaaa as a code owner April 16, 2026 03:37
@pull pull Bot locked and limited conversation to collaborators Apr 16, 2026
@pull pull Bot added the ⤵️ pull label Apr 16, 2026
@pull pull Bot merged commit f6184f3 into colinaaa:main Apr 16, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant