Fix: disable script worker in edge and fix rsc loader and runtime (#35604)
* Disable script worker for edge runtime (could lead to build error) * Fix rsc loader CJS detection * Fix pagePath searching for per-page runtime test through rsc notes demo, successful deployment: https://next-rsc-notes-9bix7l1nu.vercel.sh/
This commit is contained in:
parent
24c0fc0169
commit
b82f546526
4 changed files with 9 additions and 4 deletions
|
@ -960,8 +960,10 @@ export default async function build(
|
|||
let ssgPageRoutes: string[] | null = null
|
||||
let isMiddlewareRoute = !!page.match(MIDDLEWARE_ROUTE)
|
||||
|
||||
const pagePath = pagePaths.find((_path) =>
|
||||
_path.startsWith(actualPage + '.')
|
||||
const pagePath = pagePaths.find(
|
||||
(p) =>
|
||||
p.startsWith(actualPage + '.') ||
|
||||
p.startsWith(actualPage + '/index.')
|
||||
)
|
||||
const pageRuntime =
|
||||
hasConcurrentFeatures && pagePath
|
||||
|
@ -974,7 +976,7 @@ export default async function build(
|
|||
if (
|
||||
!isMiddlewareRoute &&
|
||||
!isReservedPage(page) &&
|
||||
// We currently don't support staic optimization in the Edge runtime.
|
||||
// We currently don't support static optimization in the Edge runtime.
|
||||
pageRuntime !== 'edge'
|
||||
) {
|
||||
try {
|
||||
|
|
|
@ -981,6 +981,7 @@ export default async function getBaseWebpackConfig(
|
|||
...(isEdgeRuntime
|
||||
? [
|
||||
{
|
||||
'@builder.io/partytown': '{}',
|
||||
'next/dist/compiled/etag': '{}',
|
||||
'next/dist/compiled/chalk': '{}',
|
||||
'react-dom': '{}',
|
||||
|
|
|
@ -14,6 +14,7 @@ export function buildExports(moduleExports: any, isESM: boolean) {
|
|||
|
||||
const esmNodeTypes = [
|
||||
'ImportDeclaration',
|
||||
'ExportDeclaration',
|
||||
'ExportNamedDeclaration',
|
||||
'ExportDefaultExpression',
|
||||
'ExportDefaultDeclaration',
|
||||
|
|
|
@ -79,7 +79,8 @@ function hasComponentProps(child: any): child is React.ReactElement {
|
|||
function getPreNextWorkerScripts(context: HtmlProps, props: OriginProps) {
|
||||
const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context
|
||||
|
||||
if (!nextScriptWorkers) return null
|
||||
// disable `nextScriptWorkers` in edge runtime
|
||||
if (!nextScriptWorkers || process.browser) return null
|
||||
|
||||
try {
|
||||
let {
|
||||
|
|
Loading…
Reference in a new issue