Use minimal babel presets for wyw to fix the website Cloudflare build (#21994)

The website's Cloudflare build (`opennextjs-cloudflare` / Turbopack) was
failing with `_defineProperty is not a function` while linaria/wyw
evaluates `twenty-ui/dist/theme.cjs` at build time. It regressed in
#21946, whose twenty-ui build rework changed the emitted `theme.cjs` so
the theme objects ship as runtime object spreads (`{ ...THEME_COMMON
}`).

**Cause:** wyw evaluates modules in Node through `next/babel`, which
pulls in `preset-env` + `transform-runtime`. Those re-lower the runtime
spreads into `@babel/runtime` helpers imported as ESM; wyw then
`require()`s that ESM module in a CJS context where the export is not
callable, so `_defineProperty` fails.

**Fix:** wyw runs in Node and needs no downleveling, so replace
`next/babel` with minimal presets (`@babel/preset-typescript`,
`@babel/preset-react`, `@wyw-in-js/babel-preset`, plus
`@babel/plugin-transform-export-namespace-from`), matching
twenty-front's wyw config. No `@babel/runtime` helpers get injected.
Kept on the website side so twenty-ui keeps react/react-dom as peer deps
(#21946).

Note: no blocking PR check runs the website production build, so this is
best validated via the website preview build or the twenty-infra deploy.
This commit is contained in:
Raphaël Bosi
2026-06-23 13:25:48 +02:00
committed by GitHub
parent 16c9782c96
commit 85406a58fb
3 changed files with 85 additions and 1 deletions
+3
View File
@@ -34,6 +34,9 @@
"zod": "^4.1.11"
},
"devDependencies": {
"@babel/plugin-transform-export-namespace-from": "^7.24.6",
"@babel/preset-react": "^7.24.6",
"@babel/preset-typescript": "^7.24.6",
"@lingui/cli": "^5.1.2",
"@lingui/conf": "5.1.2",
"@lingui/format-po": "5.1.2",
+3 -1
View File
@@ -1,9 +1,11 @@
module.exports = {
babelOptions: {
presets: [
require.resolve('next/babel'),
require.resolve('@babel/preset-typescript'),
require.resolve('@babel/preset-react'),
require.resolve('@wyw-in-js/babel-preset'),
],
plugins: [require.resolve('@babel/plugin-transform-export-namespace-from')],
compact: true,
},
};
+79
View File
@@ -3544,6 +3544,17 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-export-namespace-from@npm:^7.24.6":
version: 7.29.7
resolution: "@babel/plugin-transform-export-namespace-from@npm:7.29.7"
dependencies:
"@babel/helper-plugin-utils": "npm:^7.29.7"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/6cd951e366c5c30223c409157e312d949feecfae8b4b4927053764ec71ff2bacf43aceda9b53239cd90d71caf4ae849c70549e0d3e31377dd8f42a0c283bdda2
languageName: node
linkType: hard
"@babel/plugin-transform-export-namespace-from@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9"
@@ -3907,6 +3918,17 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-react-display-name@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/plugin-transform-react-display-name@npm:7.29.7"
dependencies:
"@babel/helper-plugin-utils": "npm:^7.29.7"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/0a3b2461b189d6f4ca4f691bb4d1872bdebbac90d2e933a42a2fb22a0d26c81fa1ba7bc8128f3886b3f0f8a0ffe5aa0d7eaf4cd5b9610fc4967913a060501781
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx-development@npm:^7.27.1":
version: 7.27.1
resolution: "@babel/plugin-transform-react-jsx-development@npm:7.27.1"
@@ -3918,6 +3940,17 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx-development@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/plugin-transform-react-jsx-development@npm:7.29.7"
dependencies:
"@babel/plugin-transform-react-jsx": "npm:^7.29.7"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/a2d44d068d35f8e6bc0437ba0da86526d4473491a43108caf77cba467a3ab522cbd09bcd8184b7a49f3d2b52e0883ad797ed2f91c090b857a80a6f383e88f449
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx@npm:^7.27.1":
version: 7.28.6
resolution: "@babel/plugin-transform-react-jsx@npm:7.28.6"
@@ -3933,6 +3966,21 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/plugin-transform-react-jsx@npm:7.29.7"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.29.7"
"@babel/helper-module-imports": "npm:^7.29.7"
"@babel/helper-plugin-utils": "npm:^7.29.7"
"@babel/plugin-syntax-jsx": "npm:^7.29.7"
"@babel/types": "npm:^7.29.7"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/ae6487c3deafcffda8a2c1b1eb77e0b7121630fa1a9646cecd73dbbdd8271532a0f7f0e8c01f69b6d39a36d8d79eb67e2d51031369c9055f18f7d8e70d9b5446
languageName: node
linkType: hard
"@babel/plugin-transform-react-pure-annotations@npm:^7.27.1":
version: 7.27.1
resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1"
@@ -3945,6 +3993,18 @@ __metadata:
languageName: node
linkType: hard
"@babel/plugin-transform-react-pure-annotations@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.29.7"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.29.7"
"@babel/helper-plugin-utils": "npm:^7.29.7"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/ad85d57dfa105cd19dc5271f68c9a3e134ab96edce9b8c6b521fdb158499bc616df9d4ee9b386e9dc5532e67bd5682ba2047b88550699d7f1060eaaba80fb6d1
languageName: node
linkType: hard
"@babel/plugin-transform-regenerator@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-regenerator@npm:7.25.9"
@@ -4250,6 +4310,22 @@ __metadata:
languageName: node
linkType: hard
"@babel/preset-react@npm:^7.24.6":
version: 7.29.7
resolution: "@babel/preset-react@npm:7.29.7"
dependencies:
"@babel/helper-plugin-utils": "npm:^7.29.7"
"@babel/helper-validator-option": "npm:^7.29.7"
"@babel/plugin-transform-react-display-name": "npm:^7.29.7"
"@babel/plugin-transform-react-jsx": "npm:^7.29.7"
"@babel/plugin-transform-react-jsx-development": "npm:^7.29.7"
"@babel/plugin-transform-react-pure-annotations": "npm:^7.29.7"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/a84e90805ce06dd5d7fcbfd8e32fe0c79966feba218e1d89097699ff5224d232e56191688ae264be2c6ef516523e3e2246949439e1e141d21def881a5752181f
languageName: node
linkType: hard
"@babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.22.5, @babel/preset-typescript@npm:^7.24.6":
version: 7.28.5
resolution: "@babel/preset-typescript@npm:7.28.5"
@@ -54208,6 +54284,9 @@ __metadata:
version: 0.0.0-use.local
resolution: "twenty-website@workspace:packages/twenty-website"
dependencies:
"@babel/plugin-transform-export-namespace-from": "npm:^7.24.6"
"@babel/preset-react": "npm:^7.24.6"
"@babel/preset-typescript": "npm:^7.24.6"
"@babel/runtime": "npm:^7.27.6"
"@base-ui/react": "npm:^1.3.0"
"@calcom/embed-react": "npm:^1.5.3"