Closed
Description
Summary
The issue happened when I integrated Builder.io into Nextjs and deployed it to Netlify. It works fine when I deploy to a VPS.
A link to a reproduction repository
https://github.com/skordesign/next-builder-io
Expected Result
Works fine
Actual Result
Show error Cannot find module 'styled-jsx/style'
Steps to reproduce
- Create a new Next App Router project
- Integrated with Builder.io follow https://www.builder.io/c/docs/integrating-builder-pages
- Deploy to Netlify using ntl command
Next Runtime version
4.40.2
Is your issue related to the app
directory?
- Yes, I am using the
app
directory
More information about your build
- I am building using the CLI
- I am building using file-based configuration (
netlify.toml
)
What OS are you using?
Windows
Your netlify.toml file
`netlify.toml`
# example netlify.toml
[build]
command = "npm run build"
functions = "netlify/functions"
publish = ".next"
## Uncomment to use this redirect for Single Page Applications like create-react-app.
## Not needed for static site generators.
#[[redirects]]
# from = "/*"
# to = "/index.html"
# status = 200
[[plugins]]
package = "@netlify/plugin-nextjs"
## (optional) Settings for Netlify Dev
## https://github.com/netlify/cli/blob/main/docs/netlify-dev.md#project-detection
#[dev]
# command = "yarn start" # Command to start your dev server
# port = 3000 # Port that the dev server will be listening on
# publish = "dist" # Folder with the static content for _redirect file
## more info on configuring this file: https://docs.netlify.com/configure-builds/file-based-configuration/
Your public/_redirects file
`_redirects`
# Paste content of your `_redirects` file here
Your next.config.js
file
`next.config.js`
const withBuilderDevTools = require("@builder.io/dev-tools/next")();
/** @type {import('next').NextConfig} */
const nextConfig = withBuilderDevTools({});
module.exports = nextConfig;
Builds logs (or link to your logs)
Build logs
Netlify Build
Version
@netlify/build 29.22.5
Flags
{}
Current directory
D:\Workspace\Code\Hegg\test-pages
Config file
D:\Workspace\Code\Hegg\test-pages\netlify.toml
Context
dev
Using Next.js Runtime - v4.36.1
Outdated plugins
- @netlify/plugin-nextjs@4.36.1: latest version is 4.40.1
Migration guide: https://ntl.fyi/next-plugin-migration
To upgrade this plugin, please update its version in "package.json"
@netlify/plugin-nextjs (onPreBuild event)
Next.js cache restored.
Netlify configuration property "build.environment.NEXT_PRIVATE_TARGET" value changed.
(@netlify/plugin-nextjs onPreBuild completed in 4s)
build.command from netlify.toml
$ npm run build
> test-pages@0.1.0 build
> next build
Creating an optimized production build ...
Linting and checking validity of types ...
./src/app/[...page]/page.tsx
14:1 Warning: Prevent client components from being async functions. See: https://nextjs.org/docs/messages/no-async-client-component @next/next/no-async-client-component
info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
Collecting page data ...
Generating static pages (0/6) ...
Generating static pages (1/6)
Generating static pages (2/6)
Generating static pages (4/6)
Γ£ô Generating static pages (6/6)
Finalizing page optimization ...
Collecting build traces ...
Route (app) Size First Load JS
/ 344 B 86 kB
/_not-found 883 B 81.4 kB
/[...page] 57.7 kB 138 kB
/test 348 B 86 kB
+ First Load JS shared by all 80.5 kB
chunks/864-bd0ca5441cff7f3a.js 27.5 kB
chunks/fd9d1056-24f21efd0722edc0.js 51 kB
chunks/main-app-5956d7b770e81883.js 234 B
chunks/webpack-f00c7c33c8ee7236.js 1.86 kB
(Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
(Static) automatically rendered as static HTML (uses no initial props)
(build.command completed in 13.1s)
@netlify/plugin-nextjs (onBuild event)
Patching D:\Workspace\Code\Hegg\test-pages\node_modules\next\dist\server\base-server.js
Done
Patching D:\Workspace\Code\Hegg\test-pages\node_modules\next\dist\server\next-server.js
Done
Moving static page files to serve from CDN...
Moved 6 files
You are not using Netlify Edge Functions for image format detection. Set env var "NEXT_FORCE_EDGE_IMAGES=true" to enable.
Netlify configuration property "redirects" value changed to [
{ from: '/_next/static/*', to: '/static/:splat', status: 200 },
{
from: '/_next/image*',
query: { url: ':url', w: ':width', q: ':quality' },
to: '/_ipx/w_:width,q_:quality/:url',
status: 301
},
{ from: '/_ipx/*', to: '/.netlify/builders/_ipx', status: 200 },
{ from: '/cache/*', to: '/404.html', status: 404, force: true },
{ from: '/server/*', to: '/404.html', status: 404, force: true },
{ from: '/serverless/*', to: '/404.html', status: 404, force: true },
{ from: '/trace', to: '/404.html', status: 404, force: true },
{ from: '/traces', to: '/404.html', status: 404, force: true },
{
from: '/routes-manifest.json',
to: '/404.html',
status: 404,
force: true
},
{
from: '/build-manifest.json',
to: '/404.html',
status: 404,
force: true
},
{
from: '/prerender-manifest.json',
to: '/404.html',
status: 404,
force: true
},
{
from: '/react-loadable-manifest.json',
to: '/404.html',
status: 404,
force: true
},
{ from: '/BUILD_ID', to: '/404.html', status: 404, force: true },
{
from: '/api/*',
to: '/.netlify/functions/___netlify-handler',
status: 200
},
{
from: '/next.svg',
to: '/next.svg',
conditions: { Cookie: [Array] },
status: 200
},
{
from: '/vercel.svg',
to: '/vercel.svg',
conditions: { Cookie: [Array] },
status: 200
},
{
from: '/*',
to: '/.netlify/functions/___netlify-handler',
status: 200,
conditions: { Cookie: [Array] },
force: true
},
{
from: '/_next/data/-CZLcvrM6st_YyeVW-_DC/_not-found.json',
to: '/.netlify/functions/___netlify-handler',
status: 200,
force: false
},
{
from: '/_not-found',
to: '/.netlify/functions/___netlify-handler',
status: 200,
force: false
},
{
from: '/_next/data/-CZLcvrM6st_YyeVW-_DC/:page/*',
to: '/.netlify/functions/___netlify-handler',
status: 200,
force: false
},
{
from: '/:page/*',
to: '/.netlify/functions/___netlify-handler',
status: 200,
force: false
},
{
from: '/*',
to: '/.netlify/functions/___netlify-handler',
status: 200
}
].
(@netlify/plugin-nextjs onBuild completed in 3.3s)
Functions bundling
The Netlify Functions setting targets a non-existing directory: netlify\functions
Packaging Functions from .netlify\functions-internal directory:
- _ipx\_ipx.js
- ___netlify-handler\___netlify-handler.js
- ___netlify-odb-handler\___netlify-odb-handler.js
(Functions bundling completed in 16.4s)
Edge Functions bundling
Packaging Edge Functions from .netlify\edge-functions directory:
- rsc-data
(Edge Functions bundling completed in 987ms)
@netlify/plugin-nextjs (onPostBuild event)
Next.js cache saved.
(@netlify/plugin-nextjs onPostBuild completed in 138ms)
Netlify Build Complete
(Netlify Build completed in 40.7s)
32mDeploy path: 39m D:\Workspace\Code\Hegg\test-pages\.next
32mFunctions path: 39m D:\Workspace\Code\Hegg\test-pages\netlify\functions
32mConfiguration path: 39mD:\Workspace\Code\Hegg\test-pages\netlify.toml
Functions folder "D:\Workspace\Code\Hegg\test-pages\netlify\functions" specified but it doesn't exist! Will proceed without deploying functions
Deploying to main site URL...
32mBuild logs: 39m https://app.netlify.com/sites/metaguest-pages/deploys/652924d534fba1268c7da6b4
32mFunction logs: 39m https://app.netlify.com/sites/metaguest-pages/functions
32mUnique deploy URL: 39mhttps://652924d534fba1268c7da6b4--metaguest-pages.netlify.app
32mWebsite URL: 39m https://metaguest-pages.netlify.app
Function logs
Function logs
Oct 13, 05:40:54 PM: INIT_START Runtime Version: nodejs:18.v13 Runtime Version ARN: arn:aws:lambda:us-east-2::runtime:0229ff5ced939264450549058d8f267110e92677c27063e6dcd781a280f2462bOct 13, 05:40:54 PM: 2023-10-13T10:40:54.911Z undefined ERROR Uncaught Exception {"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'styled-jsx/style'\nRequire stack:\n- /var/task/node_modules/next/dist/server/require-hook.js\n- /var/task/node_modules/next/dist/server/next-server.js\n- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js\n- /var/task/___netlify-handler.js\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'styled-jsx/style'","Require stack:","- /var/task/node_modules/next/dist/server/require-hook.js","- /var/task/node_modules/next/dist/server/next-server.js","- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js","- /var/task/___netlify-handler.js","- /var/runtime/index.mjs"," at _loadUserApp (file:///var/runtime/index.mjs:1061:17)"," at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1093:21)"," at async start (file:///var/runtime/index.mjs:1256:23)"," at async file:///var/runtime/index.mjs:1262:1"]}Oct 13, 05:40:54 PM: INIT_REPORT Init Duration: 129.70 ms Phase: init Status: error Error Type: Runtime.ExitErrorOct 13, 05:40:55 PM: 2023-10-13T10:40:55.359Z undefined ERROR Uncaught Exception {"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'styled-jsx/style'\nRequire stack:\n- /var/task/node_modules/next/dist/server/require-hook.js\n- /var/task/node_modules/next/dist/server/next-server.js\n- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js\n- /var/task/___netlify-handler.js\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'styled-jsx/style'","Require stack:","- /var/task/node_modules/next/dist/server/require-hook.js","- /var/task/node_modules/next/dist/server/next-server.js","- /var/task/.netlify/functions-internal/___netlify-handler/___netlify-handler.js","- /var/task/___netlify-handler.js","- /var/runtime/index.mjs"," at _loadUserApp (file:///var/runtime/index.mjs:1061:17)"," at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1093:21)"," at async start (file:///var/runtime/index.mjs:1256:23)"," at async file:///var/runtime/index.mjs:1262:1"]}Oct 13, 05:40:55 PM: INIT_REPORT Init Duration: 229.16 ms Phase: invoke Status: error Error Type: Runtime.ExitErrorOct 13, 05:40:55 PM: Unknown application error occurred
Runtime.ImportModuleErrorOct 13, 05:40:55 PM: 7c3f74fd Duration: 229.82 ms Memory Usage: 20 MB
.next JSON files
generated .next JSON files
.next/required-server-files.json
{"version":1,"config":{"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":".next","cleanDistDir":true,"assetPrefix":"","configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"date-fns":{"transform":"date-fns/{{member}}"},"lodash":{"transform":"lodash/{{member}}"},"lodash-es":{"transform":"lodash-es/{{member}}"},"ramda":{"transform":"ramda/es/{{member}}"},"react-bootstrap":{"transform":{"useAccordionButton":"modularize-import-loader?name=useAccordionButton&from=named&as=default!react-bootstrap/AccordionButton","*":"react-bootstrap/{{member}}"}},"antd":{"transform":"antd/lib/{{kebabCase member}}"},"ahooks":{"transform":{"createUpdateEffect":"modularize-import-loader?name=createUpdateEffect&from=named&as=default!ahooks/es/createUpdateEffect","*":"ahooks/es/{{member}}"}},"@ant-design/icons":{"transform":{"IconProvider":"modularize-import-loader?name=IconProvider&from=named&as=default!@ant-design/icons","createFromIconfontCN":"@ant-design/icons/es/components/IconFont","getTwoToneColor":"modularize-import-loader?name=getTwoToneColor&from=named&as=default!@ant-design/icons/es/components/twoTonePrimaryColor","setTwoToneColor":"modularize-import-loader?name=setTwoToneColor&from=named&as=default!@ant-design/icons/es/components/twoTonePrimaryColor","*":"@ant-design/icons/lib/icons/{{member}}"}},"next/server":{"transform":"next/dist/server/web/exports/{{ kebabCase member }}"}},"experimental":{"serverMinification":true,"serverSourceMaps":false,"caseSensitiveRoutes":false,"useDeploymentId":false,"useDeploymentIdServerActions":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":15,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"isrMemoryCacheSize":52428800,"fullySpecified":false,"outputFileTracingRoot":"D:\\Workspace\\Code\\Hegg\\test-pages","swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"adjustFontFallbacks":false,"adjustFontFallbacksWithSizeAdjust":false,"typedRoutes":false,"instrumentationHook":false,"bundlePagesExternals":false,"optimizePackageImports":["lucide-react","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","recharts","@material-ui/core","react-use","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":true},"configFileName":"next.config.js"},"appDir":"D:\\Workspace\\Code\\Hegg\\test-pages","relativeAppDir":"","files":[".next\\routes-manifest.json",".next\\server\\pages-manifest.json",".next\\build-manifest.json",".next\\prerender-manifest.json",".next\\prerender-manifest.js",".next\\server\\middleware-manifest.json",".next\\server\\middleware-build-manifest.js",".next\\server\\middleware-react-loadable-manifest.js",".next\\server\\app-paths-manifest.json",".next\\app-path-routes-manifest.json",".next\\app-build-manifest.json",".next\\server\\server-reference-manifest.js",".next\\server\\server-reference-manifest.json",".next\\react-loadable-manifest.json",".next\\server\\font-manifest.json",".next\\BUILD_ID",".next\\server\\next-font-manifest.js",".next\\server\\next-font-manifest.json"],"ignore":["node_modules\\next\\dist\\compiled\\@ampproject\\toolbox-optimizer\\**\\*"]}
.next/routes-manifest.json
{"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[{"page":"/[...page]","regex":"^/(.+?)(?:/)?$","routeKeys":{"nxtPpage":"nxtPpage"},"namedRegex":"^/(?<nxtPpage>.+?)(?:/)?$"}],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/_not-found","regex":"^/_not\\-found(?:/)?$","routeKeys":{},"namedRegex":"^/_not\\-found(?:/)?$"},{"page":"/favicon.ico","regex":"^/favicon\\.ico(?:/)?$","routeKeys":{},"namedRegex":"^/favicon\\.ico(?:/)?$"},{"page":"/test","regex":"^/test(?:/)?$","routeKeys":{},"namedRegex":"^/test(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url","prefetchHeader":"Next-Router-Prefetch","contentTypeHeader":"text/x-component"},"rewrites":[]}
.next/prerender-manifest.json
{"version":4,"routes":{"/favicon.ico":{"initialHeaders":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data"}],"initialRevalidateSeconds":false,"srcRoute":"/favicon.ico","dataRoute":null},"/test":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data"}],"initialRevalidateSeconds":false,"srcRoute":"/test","dataRoute":"/test.rsc"},"/":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data"}],"initialRevalidateSeconds":false,"srcRoute":"/","dataRoute":"/index.rsc"}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"4142f2b5d13a2ade5ab33480fd19a314","previewModeSigningKey":"52a3c4280be070766a6030bcf996e1dfac2ed149b1ceb886fe1addcf6ad04b08","previewModeEncryptionKey":"d9fb92ba29ba9a3f3694b0c8193f5f1f9bfad72ed45a4aa40027c654cd291e0d"}}