diff --git a/.changeset/green-insects-rule.md b/.changeset/green-insects-rule.md new file mode 100644 index 0000000000..3748dc5ec9 --- /dev/null +++ b/.changeset/green-insects-rule.md @@ -0,0 +1,5 @@ +--- +"@lynx-js/web-core-wasm": patch +--- + +reexports essential utils & types in @lynx-js/web-elements from @lynx-js/web-core-wasm/client diff --git a/.changeset/lemon-bugs-grab.md b/.changeset/lemon-bugs-grab.md new file mode 100644 index 0000000000..280224cc31 --- /dev/null +++ b/.changeset/lemon-bugs-grab.md @@ -0,0 +1,5 @@ +--- +"@lynx-js/react-webpack-plugin": patch +--- + +Set `__DEV__` and `__PROFILE__` to `true` on `NODE_ENV === 'development'`. diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 02241357e7..58829826a0 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,7 +27,7 @@ jobs: runs-on: - label: lynx-ubuntu-24.04-xlarge name: Ubuntu - # - label: lynx-windows-2022-large-verify + # - label: lynx-windows-2022-large # name: Windows timeout-minutes: 30 permissions: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d73007b062..2090c18e6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -259,7 +259,7 @@ jobs: - name: Ubuntu label: lynx-ubuntu-24.04-medium - name: Windows - label: lynx-windows-2022-large-verify + label: lynx-windows-2022-large name: Vitest (${{ matrix.runs-on.name }}) secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 11d103ee3d..0867427c32 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -73,7 +73,7 @@ jobs: runs-on: - label: lynx-ubuntu-24.04-xlarge name: Ubuntu - - label: lynx-windows-2022-large-verify + - label: lynx-windows-2022-large name: Windows timeout-minutes: 30 needs: get-merge-base diff --git a/packages/web-platform/web-core-wasm/ts/client/index.ts b/packages/web-platform/web-core-wasm/ts/client/index.ts index 3462c37238..9d3f71efc0 100644 --- a/packages/web-platform/web-core-wasm/ts/client/index.ts +++ b/packages/web-platform/web-core-wasm/ts/client/index.ts @@ -1,3 +1,4 @@ import './mainthread/LynxView.js'; import '../../css/index.css'; export type { LynxViewElement } from './mainthread/LynxView.js'; +export * from '@lynx-js/web-elements'; diff --git a/packages/web-platform/web-elements/package.json b/packages/web-platform/web-elements/package.json index ebc9f6576b..d916941f84 100644 --- a/packages/web-platform/web-elements/package.json +++ b/packages/web-platform/web-elements/package.json @@ -12,6 +12,7 @@ "type": "module", "exports": { ".": { + "@lynx-js/source-field": "./src/elements/index.ts", "types": "./dist/elements/index.d.ts", "default": "./dist/elements/index.js" }, diff --git a/packages/webpack/react-webpack-plugin/src/ReactWebpackPlugin.ts b/packages/webpack/react-webpack-plugin/src/ReactWebpackPlugin.ts index b1a37f6d9c..af12ce91f5 100644 --- a/packages/webpack/react-webpack-plugin/src/ReactWebpackPlugin.ts +++ b/packages/webpack/react-webpack-plugin/src/ReactWebpackPlugin.ts @@ -173,14 +173,17 @@ class ReactWebpackPlugin { DEBUG: null, }).apply(compiler); + const isDev = process.env['NODE_ENV'] === 'development' + || compiler.options.mode === 'development'; + new DefinePlugin({ - __DEV__: JSON.stringify(compiler.options.mode === 'development'), + __DEV__: isDev, // We enable profile by default in development. // It can also be disabled by environment variable `REACT_PROFILE=false` __PROFILE__: JSON.stringify( process.env['REACT_PROFILE'] ?? options.profile - ?? compiler.options.mode === 'development', + ?? isDev, ), // User can enable ALog by environment variable `REACT_ALOG=true` __ALOG__: JSON.stringify(Boolean(process.env['REACT_ALOG'])), diff --git a/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/index.jsx b/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/index.jsx new file mode 100644 index 0000000000..516b6d281c --- /dev/null +++ b/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/index.jsx @@ -0,0 +1,4 @@ +it('__DEV__ should be true when mode is production but NODE_ENV is development', () => { + expect(__DEV__).toBe(true); + expect(__PROFILE__).toBe(true); +}); diff --git a/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/rspack.config.js b/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/rspack.config.js new file mode 100644 index 0000000000..85fa002d43 --- /dev/null +++ b/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/rspack.config.js @@ -0,0 +1,24 @@ +import { createConfig } from '../../../create-react-config.js'; + +const config = createConfig(); + +let oldNodeEnv; +config.plugins.unshift({ + apply: () => { + oldNodeEnv = process.env.NODE_ENV; + process.env.NODE_ENV = 'development'; + }, +}); + +config.plugins.push({ + apply: () => { + process.env.NODE_ENV = oldNodeEnv; + }, +}); + +/** @type {import('@rspack/core').Configuration} */ +export default { + ...config, + context: __dirname, + mode: 'production', +}; diff --git a/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/test.config.cjs b/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/test.config.cjs new file mode 100644 index 0000000000..a9b8c33fb3 --- /dev/null +++ b/packages/webpack/react-webpack-plugin/test/cases/define/prod-mode-dev-env/test.config.cjs @@ -0,0 +1,7 @@ +/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ +module.exports = { + bundlePath: [ + 'main__main-thread.js', + 'main__background.js', + ], +};