Skip to content

Commit

Permalink
Fix: disable script worker in edge and fix rsc loader and runtime (#3…
Browse files Browse the repository at this point in the history
…5604)

* 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/
  • Loading branch information
huozhi authored Mar 26, 2022
1 parent 24c0fc0 commit b82f546
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 4 deletions.
8 changes: 5 additions & 3 deletions packages/next/build/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 {
Expand Down
1 change: 1 addition & 0 deletions packages/next/build/webpack-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -981,6 +981,7 @@ export default async function getBaseWebpackConfig(
...(isEdgeRuntime
? [
{
'@builder.io/partytown': '{}',
'next/dist/compiled/etag': '{}',
'next/dist/compiled/chalk': '{}',
'react-dom': '{}',
Expand Down
1 change: 1 addition & 0 deletions packages/next/build/webpack/loaders/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export function buildExports(moduleExports: any, isESM: boolean) {

const esmNodeTypes = [
'ImportDeclaration',
'ExportDeclaration',
'ExportNamedDeclaration',
'ExportDefaultExpression',
'ExportDefaultDeclaration',
Expand Down
3 changes: 2 additions & 1 deletion packages/next/pages/_document.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit b82f546

Please sign in to comment.