Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only import dev overlay for dev mode #41771

Merged
merged 4 commits into from Oct 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/next/build/entries.ts
Expand Up @@ -521,7 +521,7 @@ export function finalizeEntrypoint({
name !== CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH
) {
// TODO-APP: this is a temporary fix. @shuding is going to change the handling of server components
if (hasAppDir && entry.import.includes('flight')) {
if (hasAppDir && entry.import.includes('next-flight-client-entry-loader')) {
return {
dependOn: CLIENT_STATIC_FILES_RUNTIME_MAIN_APP,
...entry,
Expand Down
4 changes: 2 additions & 2 deletions packages/next/build/webpack-config.ts
Expand Up @@ -1618,7 +1618,7 @@ export default async function getBaseWebpackConfig(
},
module: {
rules: [
...(hasAppDir && !isClient && !isEdgeServer
...(hasAppDir && !isClient
? [
{
issuerLayer: WEBPACK_LAYERS.server,
Expand All @@ -1643,7 +1643,7 @@ export default async function getBaseWebpackConfig(
// If missing the alias override here, the default alias will be used which aliases
// react to the direct file path, not the package name. In that case the condition
// will be ignored completely.
react: 'next/dist/compiled/react',
react: 'next/dist/compiled/react/react.shared-subset',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems important.

'react-dom$':
'next/dist/compiled/react-dom/server-rendering-stub',
},
Expand Down
Expand Up @@ -231,7 +231,7 @@ export class FlightClientEntryPlugin {

function collectModule(entryName: string, mod: any) {
const resource = mod.resource
const modId = resource // compilation.chunkGraph.getModuleId(mod) + ''
const modId = resource
if (modId) {
if (regexCSS.test(modId)) {
cssImportsForChunk[entryName].push(modId)
Expand Down Expand Up @@ -361,9 +361,8 @@ export class FlightClientEntryPlugin {
!rawRequest.startsWith(APP_DIR_ALIAS)

const modRequest: string | undefined = isLocal
? rawRequest // compilation.chunkGraph.getModuleId(mod) + ''
? rawRequest
: mod.resourceResolveData?.path + mod.resourceResolveData?.query
// console.log('modId:after', modRequest)

// Ensure module is not walked again if it's already been visited
if (!visitedBySegment[layoutOrPageRequest]) {
Expand Down
Expand Up @@ -186,10 +186,8 @@ export class FlightManifestPlugin {
context,
mod.resourceResolveData?.path || resource
)
// if (resource.includes('script'))
// console.log('ssrNamedModuleId', ssrNamedModuleId, modId)

if (!ssrNamedModuleId.startsWith('.'))
// TODO use getModuleId instead
ssrNamedModuleId = `./${ssrNamedModuleId.replace(/\\/g, '/')}`

if (isCSSModule) {
Expand Down
4 changes: 3 additions & 1 deletion packages/next/client/app-index.tsx
Expand Up @@ -7,7 +7,6 @@ import { createFromReadableStream } from 'next/dist/compiled/react-server-dom-we

import measureWebVitals from './performance-relayer'
import { HeadManagerContext } from '../shared/lib/head-manager-context'
import HotReload from './components/react-dev-overlay/hot-reloader-client'
import { GlobalLayoutRouterContext } from '../shared/lib/app-router-context'

/// <reference types="react-dom/experimental" />
Expand Down Expand Up @@ -178,6 +177,9 @@ export function hydrate() {
if (process.env.NODE_ENV !== 'production') {
const rootLayoutMissingTagsError = (self as any)
.__next_root_layout_missing_tags_error
const HotReload: typeof import('./components/react-dev-overlay/hot-reloader-client').default =
require('./components/react-dev-overlay/hot-reloader-client')
.default as typeof import('./components/react-dev-overlay/hot-reloader-client').default

// Don't try to hydrate if root layout is missing required tags, render error instead
if (rootLayoutMissingTagsError) {
Expand Down
4 changes: 1 addition & 3 deletions test/.stats-app/app/app-edge-ssr/page.js
Expand Up @@ -2,6 +2,4 @@ export default function page() {
return 'edge-ssr'
}

export const config = {
runtime: 'experimental-edge',
}
export const runtime = 'experimental-edge'
8 changes: 8 additions & 0 deletions test/.stats-app/next.config.js
Expand Up @@ -3,3 +3,11 @@ module.exports = {
appDir: true,
},
}

// For development: analyze the bundled chunks for stats app
if (process.env.ANALYZE) {
const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: true,
})
module.exports = withBundleAnalyzer(module.exports)
}
4 changes: 2 additions & 2 deletions test/e2e/app-dir/back-button-download-bug/app/page.js
Expand Up @@ -4,8 +4,8 @@ export default function Home() {
return (
<>
<h1 id="home-page">Home!</h1>
<Link href="/post/1">
<a id="to-post-1">To post 1</a>
<Link href="/post/1" id="to-post-1">
To post 1
</Link>
<Link href="/">To /</Link>
</>
Expand Down
Expand Up @@ -4,11 +4,11 @@ export default function Page({ params }) {
const nextUrl = [...params.slug, 'slug']
return (
<>
<Link href={`/dynamic-catchall/${nextUrl.join('/')}`}>
<a id="to-next-url">To next url</a>
<Link id="to-next-url" href={`/dynamic-catchall/${nextUrl.join('/')}`}>
To next url
</Link>
<Link href="/dynamic/first">
<a id="to-dynamic-first">To next url</a>
<Link href="/dynamic/first" id="to-dynamic-first">
To next url
</Link>
<p id={`catchall-${params.slug.join('-')}`}>
catchall {params.slug.join(' ')}
Expand Down