Skip to content

Commit

Permalink
Alias all client, shared, pages dist assets for esm
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Sep 29, 2022
1 parent 3f2fef1 commit 7003eed
Show file tree
Hide file tree
Showing 16 changed files with 80 additions and 56 deletions.
7 changes: 4 additions & 3 deletions packages/next/amp.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/amp')
: require('./dist/shared/lib/amp')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/shared/lib/amp')
// :
require('./dist/shared/lib/amp')
7 changes: 4 additions & 3 deletions packages/next/app.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/pages/_app')
: require('./dist/pages/_app')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/pages/_app')
// :
require('./dist/pages/_app')
3 changes: 0 additions & 3 deletions packages/next/build/entries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,6 @@ export function getAppEntry(opts: {
appDir: string
appPaths: string[] | null
pageExtensions: string[]
nextRuntime: string
}) {
return {
import: `next-app-loader?${stringify(opts)}!`,
Expand Down Expand Up @@ -456,7 +455,6 @@ export async function createEntrypoints(params: CreateEntrypointsParams) {
appDir,
appPaths: matchedAppPaths,
pageExtensions,
nextRuntime: 'nodejs',
})
} else if (isTargetLikeServerless(target)) {
if (page !== '/_app' && page !== '/_document') {
Expand All @@ -481,7 +479,6 @@ export async function createEntrypoints(params: CreateEntrypointsParams) {
appDir: appDir!,
appPaths: matchedAppPaths,
pageExtensions,
nextRuntime: 'edge',
}).import
}

Expand Down
27 changes: 20 additions & 7 deletions packages/next/build/webpack-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -788,7 +788,8 @@ export default async function getBaseWebpackConfig(
return prev
}, [] as string[])
: []),
isEdgeServer ? 'next/dist/esm/pages/_app.js' : 'next/dist/pages/_app.js',
// isEdgeServer ? 'next/dist/esm/pages/_app.js' :
'next/dist/pages/_app.js',
]
customAppAliases[`${PAGES_DIR_ALIAS}/_error`] = [
...(pagesDir
Expand All @@ -797,9 +798,10 @@ export default async function getBaseWebpackConfig(
return prev
}, [] as string[])
: []),
isEdgeServer
? 'next/dist/esm/pages/_error.js'
: 'next/dist/pages/_error.js',
// isEdgeServer
// ? 'next/dist/esm/pages/_error.js'
// :
'next/dist/pages/_error.js',
]
customDocumentAliases[`${PAGES_DIR_ALIAS}/_document`] = [
...(pagesDir
Expand All @@ -808,9 +810,10 @@ export default async function getBaseWebpackConfig(
return prev
}, [] as string[])
: []),
isEdgeServer
? `next/dist/esm/pages/_document.js`
: `next/dist/pages/_document.js`,
// isEdgeServer
// ? 'next/dist/esm/pages/_document.js'
// :
'next/dist/pages/_document.js',
]
}

Expand All @@ -830,6 +833,16 @@ export default async function getBaseWebpackConfig(
...nodePathList, // Support for NODE_PATH environment variable
],
alias: {
// Alias next/dist imports to next/dist/esm assets,
// let this alias hit before `next` alias.
...(isEdgeServer
? {
'next/dist/client': 'next/dist/esm/client',
'next/dist/shared': 'next/dist/esm/shared',
'next/dist/pages': 'next/dist/esm/pages',
}
: undefined),

next: NEXT_PROJECT_ROOT,

react: reactDir,
Expand Down
18 changes: 8 additions & 10 deletions packages/next/build/webpack/loaders/next-app-loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,8 @@ const nextAppLoader: webpack.LoaderDefinitionFunction<{
appDir: string
appPaths: string[] | null
pageExtensions: string[]
nextRuntime: string
}> = async function nextAppLoader() {
const { name, appDir, appPaths, pagePath, pageExtensions, nextRuntime } =
const { name, appDir, appPaths, pagePath, pageExtensions } =
this.getOptions() || {}

const buildInfo = getModuleBuildInfo((this as any)._module)
Expand Down Expand Up @@ -180,24 +179,23 @@ const nextAppLoader: webpack.LoaderDefinitionFunction<{
resolveParallelSegments,
})

const rootDistFolder = nextRuntime === 'edge' ? 'next/dist/esm' : 'next/dist'
const result = `
export ${treeCode}
export const AppRouter = require('${rootDistFolder}/client/components/app-router.client.js').default
export const LayoutRouter = require('${rootDistFolder}/client/components/layout-router.client.js').default
export const RenderFromTemplateContext = require('${rootDistFolder}/client/components/render-from-template-context.client.js').default
export const AppRouter = require('next/dist/client/components/app-router.client.js').default
export const LayoutRouter = require('next/dist/client/components/layout-router.client.js').default
export const RenderFromTemplateContext = require('next/dist/client/components/render-from-template-context.client.js').default
export const HotReloader = ${
// Disable HotReloader component in production
this.mode === 'development'
? `require('${rootDistFolder}/client/components/hot-reloader.client.js').default`
? `require('next/dist/client/components/hot-reloader.client.js').default`
: 'null'
}
export const staticGenerationAsyncStorage = require('${rootDistFolder}/client/components/static-generation-async-storage.js').staticGenerationAsyncStorage
export const requestAsyncStorage = require('${rootDistFolder}/client/components/request-async-storage.js').requestAsyncStorage
export const staticGenerationAsyncStorage = require('next/dist/client/components/static-generation-async-storage.js').staticGenerationAsyncStorage
export const requestAsyncStorage = require('next/dist/client/components/request-async-storage.js').requestAsyncStorage
export const serverHooks = require('${rootDistFolder}/client/components/hooks-server-context.js')
export const serverHooks = require('next/dist/client/components/hooks-server-context.js')
export const renderToReadableStream = require('next/dist/compiled/react-server-dom-webpack/writer.browser.server').renderToReadableStream
export const __next_app_webpack_require__ = __webpack_require__
Expand Down
7 changes: 4 additions & 3 deletions packages/next/client.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/index')
: require('./dist/client/index')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/client/index')
// :
require('./dist/client/index')
7 changes: 4 additions & 3 deletions packages/next/config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/runtime-config')
: require('./dist/shared/lib/runtime-config')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/shared/lib/runtime-config')
// :
require('./dist/shared/lib/runtime-config')
7 changes: 4 additions & 3 deletions packages/next/constants.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/constants')
: require('./dist/shared/lib/constants')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/shared/lib/constants')
// :
require('./dist/shared/lib/constants')
7 changes: 4 additions & 3 deletions packages/next/document.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/pages/_document')
: require('./dist/pages/_document')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/pages/_document')
// :
require('./dist/pages/_document')
7 changes: 4 additions & 3 deletions packages/next/dynamic.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/dynamic')
: require('./dist/shared/lib/dynamic')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/shared/lib/dynamic')
// :
require('./dist/shared/lib/dynamic')
7 changes: 4 additions & 3 deletions packages/next/error.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/pages/_error')
: require('./dist/pages/_error')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/pages/_error')
// :
require('./dist/pages/_error')
7 changes: 4 additions & 3 deletions packages/next/head.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/head')
: require('./dist/shared/lib/head')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/shared/lib/head')
// :
require('./dist/shared/lib/head')
7 changes: 4 additions & 3 deletions packages/next/image.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/image')
: require('./dist/client/image')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/client/image')
// :
require('./dist/client/image')
7 changes: 4 additions & 3 deletions packages/next/link.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/link')
: require('./dist/client/link')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/client/link')
// :
require('./dist/client/link')
7 changes: 4 additions & 3 deletions packages/next/router.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/router')
: require('./dist/client/router')
// process.env.NEXT_RUNTIME === 'edge'
// ? require('./dist/esm/client/router')
// :
require('./dist/client/router')
4 changes: 4 additions & 0 deletions test/e2e/app-dir/app-edge/app/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export default function Page() {
return <p>index</p>
}
export const config = { runtime: 'experimental-edge' }

0 comments on commit 7003eed

Please sign in to comment.