Skip to content

Commit

Permalink
Assign layer to app client entries (#43197)
Browse files Browse the repository at this point in the history
This is one of the required changes to refactor bundling strategy for
pages and app.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the
feature request has been accepted for implementation before opening a
PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
  • Loading branch information
shuding committed Dec 7, 2022
1 parent dbc8334 commit 2a23039
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
19 changes: 16 additions & 3 deletions packages/next/build/entries.ts
Expand Up @@ -19,7 +19,7 @@ import {
SERVER_RUNTIME,
WEBPACK_LAYERS,
} from '../lib/constants'
import { RSC_MODULE_TYPES } from '../shared/lib/constants'
import { APP_CLIENT_INTERNALS, RSC_MODULE_TYPES } from '../shared/lib/constants'
import {
CLIENT_STATIC_FILES_RUNTIME_AMP,
CLIENT_STATIC_FILES_RUNTIME_MAIN,
Expand Down Expand Up @@ -517,6 +517,12 @@ export function finalizeEntrypoint({
}
}

const isAppLayer =
hasAppDir &&
(name === CLIENT_STATIC_FILES_RUNTIME_MAIN_APP ||
name === APP_CLIENT_INTERNALS ||
name.startsWith('app/'))

if (
// Client special cases
name !== CLIENT_STATIC_FILES_RUNTIME_POLYFILLS &&
Expand All @@ -525,10 +531,10 @@ export function finalizeEntrypoint({
name !== CLIENT_STATIC_FILES_RUNTIME_AMP &&
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('next-flight-client-entry-loader')) {
if (isAppLayer) {
return {
dependOn: CLIENT_STATIC_FILES_RUNTIME_MAIN_APP,
layer: WEBPACK_LAYERS.appClient,
...entry,
}
}
Expand All @@ -542,5 +548,12 @@ export function finalizeEntrypoint({
}
}

if (isAppLayer) {
return {
layer: WEBPACK_LAYERS.appClient,
...entry,
}
}

return entry
}
Expand Up @@ -65,6 +65,7 @@ export async function getNotFoundError(
column: loc.start.column,
source: originalSource,
rootDirectory: compilation.options.context!,
modulePath: fileName,
frame: {},
})

Expand Down
1 change: 1 addition & 0 deletions packages/next/lib/constants.ts
Expand Up @@ -76,4 +76,5 @@ export const WEBPACK_LAYERS = {
api: 'api',
middleware: 'middleware',
edgeAsset: 'edge-asset',
appClient: 'app-client',
}

0 comments on commit 2a23039

Please sign in to comment.