Skip to content

Commit

Permalink
fix nft missing
Browse files Browse the repository at this point in the history
  • Loading branch information
feedthejim committed Jul 6, 2023
1 parent 9a0afec commit f4aa57a
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 122 deletions.
15 changes: 14 additions & 1 deletion packages/next/src/build/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,11 @@ import { createClientRouterFilter } from '../lib/create-client-router-filter'
import { createValidFileMatcher } from '../server/lib/find-page-file'
import { startTypeChecking } from './type-check'
import { generateInterceptionRoutesRewrites } from '../lib/generate-interception-routes-rewrites'
import {
baseOverrides,
experimentalOverrides,
vanillaOverrides,
} from '../server/require-hook'

export type SsgRoute = {
initialRevalidateSeconds: number | false
Expand Down Expand Up @@ -1967,8 +1972,16 @@ export default async function build(
require.resolve(
'next/dist/compiled/minimal-next-server/next-server.js'
),
...Object.values(vanillaOverrides).map((override) =>
require.resolve(override)
),
...Object.values(baseOverrides).map((override) =>
require.resolve(override)
),
...Object.values(experimentalOverrides).map((override) =>
require.resolve(override)
),
].filter(nonNullable)

// ensure we trace any dependencies needed for custom
// incremental cache handler
if (incrementalCacheHandlerPath) {
Expand Down
183 changes: 62 additions & 121 deletions packages/next/src/server/require-hook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,72 @@ const hookPropertyMap = new Map()

let aliasedPrebundledReact = false

const resolve = process.env.NEXT_MINIMAL
? // @ts-ignore
__non_webpack_require__.resolve
: require.resolve

const toResolveMap = (map: Record<string, string>): [string, string][] =>
Object.entries(map).map(([key, value]) => [key, resolve(value)])

export const vanillaOverrides = {
'styled-jsx': 'styled-jsx/package.json',
'styled-jsx/style': 'styled-jsx/style',
}

export const baseOverrides = {
react: 'next/dist/compiled/react',
'react/package.json': 'next/dist/compiled/react/package.json',
'react/jsx-runtime': 'next/dist/compiled/react/jsx-runtime',
'react/jsx-dev-runtime': 'next/dist/compiled/react/jsx-dev-runtime',
'react-dom': 'next/dist/compiled/react-dom/server-rendering-stub',
'react-dom/package.json': 'next/dist/compiled/react-dom/package.json',
'react-dom/client': 'next/dist/compiled/react-dom/client',
'react-dom/server': 'next/dist/compiled/react-dom/server',
'react-dom/server.browser': 'next/dist/compiled/react-dom/server.browser',
'react-dom/server.edge': 'next/dist/compiled/react-dom/server.edge',
'react-server-dom-webpack/client':
'next/dist/compiled/react-server-dom-webpack/client',
'react-server-dom-webpack/client.edge':
'next/dist/compiled/react-server-dom-webpack/client.edge',
'react-server-dom-webpack/server.edge':
'next/dist/compiled/react-server-dom-webpack/server.edge',
'react-server-dom-webpack/server.node':
'next/dist/compiled/react-server-dom-webpack/server.node',
}

export const experimentalOverrides = {
react: 'next/dist/compiled/react-experimental',
'react/jsx-runtime': 'next/dist/compiled/react-experimental/jsx-runtime',
'react/jsx-dev-runtime':
'next/dist/compiled/react-experimental/jsx-dev-runtime',
'react-dom':
'next/dist/compiled/react-dom-experimental/server-rendering-stub',
'react/package.json': 'next/dist/compiled/react-experimental/package.json',
'react-dom/package.json':
'next/dist/compiled/react-dom-experimental/package.json',
'react-dom/client': 'next/dist/compiled/react-dom-experimental/client',
'react-dom/server': 'next/dist/compiled/react-dom-experimental/server',
'react-dom/server.browser':
'next/dist/compiled/react-dom-experimental/server.browser',
'react-dom/server.edge':
'next/dist/compiled/react-dom-experimental/server.edge',
'react-server-dom-webpack/client':
'next/dist/compiled/react-server-dom-webpack-experimental/client',
'react-server-dom-webpack/client.edge':
'next/dist/compiled/react-server-dom-webpack-experimental/client.edge',
'react-server-dom-webpack/server.edge':
'next/dist/compiled/react-server-dom-webpack-experimental/server.edge',
'react-server-dom-webpack/server.node':
'next/dist/compiled/react-server-dom-webpack-experimental/server.node',
}

export function addHookAliases(aliases: [string, string][] = []) {
for (const [key, value] of aliases) {
hookPropertyMap.set(key, value)
}
}

const resolve = process.env.NEXT_MINIMAL
? // @ts-ignore
__non_webpack_require__.resolve
: require.resolve

// Add default aliases
addHookAliases([
// Use `require.resolve` explicitly to make them statically analyzable
Expand All @@ -39,124 +94,10 @@ function overrideReact() {
// NFT when building the app in standalone mode, as we are now conditionally
// aliasing them it's tricky to track them in build time.
if (process.env.__NEXT_PRIVATE_PREBUNDLED_REACT === 'experimental') {
addHookAliases([
['react', resolve(`next/dist/compiled/react-experimental`)],
[
'react/jsx-runtime',
resolve(`next/dist/compiled/react-experimental/jsx-runtime`),
],
[
'react/jsx-dev-runtime',
resolve(`next/dist/compiled/react-experimental/jsx-dev-runtime`),
],
[
'react-dom',
resolve(
`next/dist/compiled/react-dom-experimental/server-rendering-stub`
),
],
[
'react/package.json',
resolve(`next/dist/compiled/react-experimental/package.json`),
],
[
'react-dom/package.json',
resolve(`next/dist/compiled/react-dom-experimental/package.json`),
],
[
'react-dom/client',
resolve(`next/dist/compiled/react-dom-experimental/client`),
],
[
'react-dom/server',
resolve(`next/dist/compiled/react-dom-experimental/server`),
],
[
'react-dom/server.browser',
resolve(`next/dist/compiled/react-dom-experimental/server.browser`),
],
[
'react-dom/server.edge',
resolve(`next/dist/compiled/react-dom-experimental/server.edge`),
],
[
'react-server-dom-webpack/client',
resolve(
`next/dist/compiled/react-server-dom-webpack-experimental/client`
),
],
[
'react-server-dom-webpack/client.edge',
resolve(
`next/dist/compiled/react-server-dom-webpack-experimental/client.edge`
),
],
[
'react-server-dom-webpack/server.edge',
resolve(
`next/dist/compiled/react-server-dom-webpack-experimental/server.edge`
),
],
[
'react-server-dom-webpack/server.node',
resolve(
`next/dist/compiled/react-server-dom-webpack-experimental/server.node`
),
],
])
addHookAliases(toResolveMap(experimentalOverrides))
} else {
addHookAliases([
['react', resolve(`next/dist/compiled/react`)],
[
'react/package.json',
resolve(`next/dist/compiled/react/package.json`),
],
['react/jsx-runtime', resolve(`next/dist/compiled/react/jsx-runtime`)],
[
'react/jsx-dev-runtime',
resolve(`next/dist/compiled/react/jsx-dev-runtime`),
],
[
'react-dom',
resolve(`next/dist/compiled/react-dom/server-rendering-stub`),
],
[
'react-dom/package.json',
resolve(`next/dist/compiled/react-dom/package.json`),
],
['react-dom/client', resolve(`next/dist/compiled/react-dom/client`)],
['react-dom/server', resolve(`next/dist/compiled/react-dom/server`)],
[
'react-dom/server.browser',
resolve(`next/dist/compiled/react-dom/server.browser`),
],
[
'react-dom/server.edge',
resolve(`next/dist/compiled/react-dom/server.edge`),
],
[
'react-server-dom-webpack/client',
resolve(`next/dist/compiled/react-server-dom-webpack/client`),
],
[
'react-server-dom-webpack/client.edge',
resolve(`next/dist/compiled/react-server-dom-webpack/client.edge`),
],
[
'react-server-dom-webpack/server.edge',
resolve(`next/dist/compiled/react-server-dom-webpack/server.edge`),
],
[
'react-server-dom-webpack/server.node',
resolve(`next/dist/compiled/react-server-dom-webpack/server.node`),
],
])
addHookAliases(toResolveMap(baseOverrides))
}
} else {
addHookAliases([
['react/jsx-runtime', resolve(`react/jsx-runtime`)],
['react/jsx-dev-runtime', resolve(`react/jsx-dev-runtime`)],
])
}
}
overrideReact()
Expand Down

0 comments on commit f4aa57a

Please sign in to comment.