Skip to content

fix(webpack/template): add missing encode options for CSS#814

Merged
colinaaa merged 2 commits intolynx-family:mainfrom
colinaaa:colin/0515/css-encode
May 15, 2025
Merged

fix(webpack/template): add missing encode options for CSS#814
colinaaa merged 2 commits intolynx-family:mainfrom
colinaaa:colin/0515/css-encode

Conversation

@colinaaa
Copy link
Copy Markdown
Collaborator

Summary

Resolved a crash in rspeedy dev occurring when the environment includes web.

We would access encodeOptions.lepusCode.lepusChunk in WebWebpackPlugin.

lepusCode: {
// flatten the lepusCode to a single object
...encodeOptions.lepusCode.lepusChunk,
root: encodeOptions.lepusCode.root,
},

And it would crash since these properties does not exist when encoding hot-update CSS.

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented May 15, 2025

🦋 Changeset detected

Latest commit: d63e04a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@lynx-js/template-webpack-plugin Patch
@lynx-js/react-rsbuild-plugin Patch
@lynx-js/react-alias-rsbuild-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented May 15, 2025

CodSpeed Performance Report

Merging #814 will not alter performance

Comparing colinaaa:colin/0515/css-encode (d63e04a) with main (26a2bc4)

Summary

✅ 6 untouched benchmarks

@codecov
Copy link
Copy Markdown

codecov bot commented May 15, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@colinaaa colinaaa requested a review from PupilTong May 15, 2025 08:36
@colinaaa colinaaa marked this pull request as ready for review May 15, 2025 08:36
@colinaaa colinaaa added this pull request to the merge queue May 15, 2025
Merged via the queue into lynx-family:main with commit c38c737 May 15, 2025
37 checks passed
@colinaaa colinaaa deleted the colin/0515/css-encode branch May 15, 2025 09:28
colinaaa pushed a commit that referenced this pull request May 16, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @lynx-js/runtime-wrapper-webpack-plugin@0.1.0

### Minor Changes

- Add parameter forwarding for Browser Object Model (BOM) APIs.
([#787](#787))

This allows direct access to APIs like `fetch`, `requestAnimationFrame`.

## @lynx-js/react@0.108.1

### Patch Changes

- Bump swc_core v23.2.0.
([#827](#827))

## @lynx-js/rspeedy@0.9.5

### Patch Changes

- Support `source.preEntry`.
([#750](#750))

Add a script before the entry file of each page. This script will be
executed before the page code.
It can be used to execute global logics, such as injecting polyfills,
setting global styles, etc.

    example:

    ```js
    import { defineConfig } from "@lynx-js/rspeedy";
    export default defineConfig({
      source: {
        preEntry: "./src/polyfill.ts",
      },
    });
    ```

- Bump Rsbuild v1.3.20 with Rspack v1.3.10.
([#799](#799))

- Add `callerName` option to `createRspeedy`.
([#757](#757))

It can be accessed by Rsbuild plugins through
[`api.context.callerName`](https://rsbuild.dev/api/javascript-api/instance#contextcallername),
and execute different logic based on this identifier.

    ```js
    export const myPlugin = {
      name: "my-plugin",
      setup(api) {
        const { callerName } = api.context;

        if (callerName === "rslib") {
          // ...
        } else if (callerName === "rspeedy") {
          // ...
        }
      },
    };
    ```

- Support `performance.buildCache`.
([#766](#766))

- Updated dependencies
\[[`fbc4fbb`](fbc4fbb)]:
    -   @lynx-js/webpack-dev-transport@0.1.3

## @lynx-js/react-rsbuild-plugin@0.9.10

### Patch Changes

- Updated dependencies
\[[`e599635`](e599635),
[`c38c737`](c38c737),
[`d16522e`](d16522e)]:
    -   @lynx-js/template-webpack-plugin@0.6.11
    -   @lynx-js/web-webpack-plugin@0.6.7
    -   @lynx-js/runtime-wrapper-webpack-plugin@0.1.0
    -   @lynx-js/react-alias-rsbuild-plugin@0.9.10
    -   @lynx-js/react-refresh-webpack-plugin@0.3.2
    -   @lynx-js/react-webpack-plugin@0.6.13
    -   @lynx-js/css-extract-webpack-plugin@0.5.3

## @lynx-js/offscreen-document@0.0.3

### Patch Changes

- feat: support OffscreenDocument.innerHTML
([#772](#772))

## @lynx-js/web-constants@0.13.2

### Patch Changes

- fix: corrupt mainthread module cache
([#806](#806))

-   Updated dependencies \[]:
    -   @lynx-js/web-worker-rpc@0.13.2

## @lynx-js/web-core@0.13.2

### Patch Changes

- feat: allow lynx code to get JS engine provided properties on
globalThis ([#786](#786))

        globalThis.Reflect; // this will be the Reflect Object

    Note that `assigning to the globalThis` is still not allowed.

- perf: use v8 hint for generated javascript file
([#807](#807))

    <https://v8.dev/blog/explicit-compile-hints>

- feat: add new property `inject-style-rules` for LynxView
([#785](#785))

This property allows developer to inject some style rules into the
shadowroot.

It's a wrapper of
<https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule>

- fix: corrupt mainthread module cache
([#806](#806))

- Updated dependencies
\[[`03a5f64`](03a5f64),
[`6d3d852`](6d3d852),
[`8cdd288`](8cdd288),
[`6d3d852`](6d3d852)]:
    -   @lynx-js/web-mainthread-apis@0.13.2
    -   @lynx-js/web-worker-runtime@0.13.2
    -   @lynx-js/web-constants@0.13.2
    -   @lynx-js/offscreen-document@0.0.3
    -   @lynx-js/web-worker-rpc@0.13.2

## @lynx-js/web-core-server@0.13.2

### Patch Changes

- perf: use v8 hint for generated javascript file
([#807](#807))

    <https://v8.dev/blog/explicit-compile-hints>

- fix: corrupt mainthread module cache
([#806](#806))

- feat: improve template js loading
([#807](#807))

now we will create temp js file based on the new `templateName`
argument.

## @lynx-js/web-elements@0.7.2

### Patch Changes

- refactor: split shadowroot templates into a package
([#811](#811))

We're going to implement Lynx Web Platform's SSR based on the
`shadowrootmode`.


`https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode`

    (chrome 111, firefox 123, safari 16.4)

This means those modern browsers are able to show the correct layout
before the web components are defined.

To make this work, we have to split the shadowroot template string into
a new package `@lynx-js/web-elements-template`.

    No features affected.

- Updated dependencies
\[[`ae9652a`](ae9652a),
[`ae9652a`](ae9652a)]:
    -   @lynx-js/web-elements-template@0.7.2
    -   @lynx-js/web-elements-reactive@0.2.2

## @lynx-js/web-elements-reactive@0.2.2

### Patch Changes

- feat: do not create shadowroot if there already have one
([#811](#811))

    the shadowroot may already be created by


<https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode>

## @lynx-js/web-elements-template@0.7.2

### Patch Changes

- refactor: split shadowroot templates into a package
([#811](#811))

We're going to implement Lynx Web Platform's SSR based on the
`shadowrootmode`.


`https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode`

    (chrome 111, firefox 123, safari 16.4)

This means those modern browsers are able to show the correct layout
before the web components are defined.

To make this work, we have to split the shadowroot template string into
a new package `@lynx-js/web-elements-template`.

    No features affected.

## @lynx-js/web-explorer@0.0.8

### Patch Changes

- chore: import qr-scanner from unpkg
([#815](#815))

## @lynx-js/web-mainthread-apis@0.13.2

### Patch Changes

- feat: allow lynx code to get JS engine provided properties on
globalThis ([#786](#786))

        globalThis.Reflect; // this will be the Reflect Object

    Note that `assigning to the globalThis` is still not allowed.

- fix: corrupt mainthread module cache
([#806](#806))

- Updated dependencies
\[[`8cdd288`](8cdd288)]:
    -   @lynx-js/web-constants@0.13.2

## @lynx-js/web-worker-runtime@0.13.2

### Patch Changes

- feat: allow lynx code to get JS engine provided properties on
globalThis ([#786](#786))

        globalThis.Reflect; // this will be the Reflect Object

    Note that `assigning to the globalThis` is still not allowed.

- feat: return the offscreenDocument instance for startMainThread()
([#772](#772))

- Updated dependencies
\[[`03a5f64`](03a5f64),
[`8cdd288`](8cdd288),
[`6d3d852`](6d3d852)]:
    -   @lynx-js/web-mainthread-apis@0.13.2
    -   @lynx-js/web-constants@0.13.2
    -   @lynx-js/offscreen-document@0.0.3
    -   @lynx-js/web-worker-rpc@0.13.2

## @lynx-js/template-webpack-plugin@0.6.11

### Patch Changes

- Be compatible with rspack-manifest-plugin.
([#812](#812))

Now only the `[name].lynx.bundle` and `[name].web.bundle` would exist in
`manifest.json`.

See
[#763](#763)
for details.

- Avoid CSS encode crash on Web platform.
([#814](#814))

## @lynx-js/web-webpack-plugin@0.6.7

### Patch Changes

- Be compatible with rspack-manifest-plugin.
([#812](#812))

Now only the `[name].lynx.bundle` and `[name].web.bundle` would exist in
`manifest.json`.

See
[#763](#763)
for details.

## @lynx-js/webpack-dev-transport@0.1.3

### Patch Changes

- Fix live-reload not working on Lynx 3.3
([#795](#795))

## create-rspeedy@0.9.5



## @lynx-js/react-alias-rsbuild-plugin@0.9.10



## upgrade-rspeedy@0.9.5



## @lynx-js/web-worker-rpc@0.13.2

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants