gluestack-ui
gluestack-ui copied to clipboard
Build fails with babel plugin and ejected theme
Description
Following the documented steps for customizing theme and using babel plugin results in build failure.
CodeSandbox/Snack link
https://github.com/altick/repro-gluestack-babel-plugin-issue
Steps to reproduce
- create new app using
npm create gluestack
- install dependencies using yarn
- eject theme following the steps in https://gluestack.io/ui/docs/theme-configuration/customizing-theme, making sure the
gluestack-ui.config.ts
file is in the root directory alongside thebabel.config.js
- add babel plugin following steps in https://gluestack.io/ui/docs/production-optimizations/babel-plugin
- run the app in Expo Go by
yarn start
- build fails
gluestack-ui Version
@gluestack-style/babel-plugin-styled-resolver: 1.0.5 @gluestack-style/react: 1.0.43
Platform
- [X] Expo
- [ ] React Native CLI
- [ ] Next
- [ ] Web
- [X] Android
- [X] iOS
Other Platform
nodejs v18.17.0 Expo 50 (also fails with 49)
Additional Information
Console output:
transform[stderr]: Error: Build failed with 8 errors:
transform[stderr]: node_modules/@expo/html-elements/build/elements/Anchor.js:23:11: ERROR: The JSX syntax extension is not currently enabled
transform[stderr]: node_modules/@expo/html-elements/build/elements/Headings.js:16:16: ERROR: The JSX syntax extension is not currently enabled
transform[stderr]: node_modules/@expo/html-elements/build/elements/Layout.js:6:15: ERROR: The JSX syntax extension is not currently enabled
transform[stderr]: node_modules/@expo/html-elements/build/elements/Lists.js:7:15: ERROR: The JSX syntax extension is not currently enabled
transform[stderr]: node_modules/@expo/html-elements/build/elements/Rules.js:5:11: ERROR: The JSX syntax extension is not currently enabled
transform[stderr]: ...
transform[stderr]: at failureErrorWithLog (/Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:1651:15)
transform[stderr]: at /Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:1059:25
transform[stderr]: at /Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:1004:52
transform[stderr]: at buildResponseToResult (/Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:1057:7)
transform[stderr]: at /Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:1086:16
transform[stderr]: at responseCallbacks.<computed> (/Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:704:9)
transform[stderr]: at handleIncomingPacket (/Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:764:9)
transform[stderr]: at Socket.readFromStdout (/Users/petr/workspace/temp/gs-app/node_modules/esbuild/lib/main.js:680:7)
transform[stderr]: at Socket.emit (node:events:514:28)
transform[stderr]: at addChunk (node:internal/streams/readable:324:12) {
transform[stderr]: errors: [
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: },
transform[stderr]: {
transform[stderr]: detail: undefined,
transform[stderr]: id: '',
transform[stderr]: location: [Object],
transform[stderr]: notes: [Array],
transform[stderr]: pluginName: '',
transform[stderr]: text: 'The JSX syntax extension is not currently enabled'
transform[stderr]: }
transform[stderr]: ],
transform[stderr]: warnings: []
transform[stderr]: }
transform[stderr]: Error: Cannot find module '/Users/petr/workspace/temp/gs-app/.gluestack/config-81927.js'
transform[stderr]: Require stack:
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@gluestack-style/babel-plugin-styled-resolver/lib/buildConfig.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@gluestack-style/babel-plugin-styled-resolver/lib/index.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/config/files/module-types.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/config/files/configuration.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/config/files/index.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/index.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/metro-transform-worker/src/index.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@expo/metro-config/build/transform-worker/metro-transform-worker.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/@expo/metro-config/build/transform-worker/transform-worker.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/metro/src/DeltaBundler/Worker.flow.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/metro/src/DeltaBundler/Worker.js
transform[stderr]: - /Users/petr/workspace/temp/gs-app/node_modules/metro/node_modules/jest-worker/build/workers/processChild.js
transform[stderr]: at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
transform[stderr]: at Module._load (node:internal/modules/cjs/loader:922:27)
transform[stderr]: at Module.require (node:internal/modules/cjs/loader:1143:19)
transform[stderr]: at require (node:internal/modules/cjs/helpers:110:18)
transform[stderr]: at getConfig (/Users/petr/workspace/temp/gs-app/node_modules/@gluestack-style/babel-plugin-styled-resolver/lib/buildConfig.js:45:2368)
transform[stderr]: at Object.<anonymous> (/Users/petr/workspace/temp/gs-app/node_modules/@gluestack-style/babel-plugin-styled-resolver/lib/index.js:1:891)
transform[stderr]: at Module._compile (node:internal/modules/cjs/loader:1256:14)
transform[stderr]: at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
transform[stderr]: at Module.load (node:internal/modules/cjs/loader:1119:32)
transform[stderr]: at Module._load (node:internal/modules/cjs/loader:960:12)
transform[stderr]: at Module.require (node:internal/modules/cjs/loader:1143:19)
transform[stderr]: at require (node:internal/modules/cjs/helpers:110:18) {
transform[stderr]: code: 'MODULE_NOT_FOUND',
transform[stderr]: requireStack: [
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@gluestack-style/babel-plugin-styled-resolver/lib/buildConfig.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@gluestack-style/babel-plugin-styled-resolver/lib/index.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/config/files/module-types.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/config/files/configuration.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/config/files/index.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@babel/core/lib/index.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/metro-transform-worker/src/index.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@expo/metro-config/build/transform-worker/metro-transform-worker.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/@expo/metro-config/build/transform-worker/transform-worker.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/metro/src/DeltaBundler/Worker.flow.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/metro/src/DeltaBundler/Worker.js',
transform[stderr]: '/Users/petr/workspace/temp/gs-app/node_modules/metro/node_modules/jest-worker/build/workers/processChild.js'
transform[stderr]: ]
transform[stderr]: }
Android Bundling failed 6804ms (node_modules/expo/AppEntry.js)
error: App.tsx: /Users/petr/workspace/temp/gs-app/App.tsx: You cannot use tokens without wrapping the component with StyledProvider. Please wrap the component with a StyledProvider and pass theme config.