Error when exporting AMP config in app dir (#45228)
Errors in app-render if an exported amp config is found. Fixes NEXT-223 ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/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` - [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) 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`](https://github.com/vercel/next.js/blob/canary/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)
This commit is contained in:
parent
dff39acc30
commit
06b6aa2fa4
2 changed files with 47 additions and 0 deletions
|
@ -1373,6 +1373,12 @@ export async function renderToHTMLOrFlight(
|
||||||
`The default export of notFound is not a React Component in ${segment}`
|
`The default export of notFound is not a React Component in ${segment}`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (layoutOrPageMod?.config?.amp) {
|
||||||
|
throw new Error(
|
||||||
|
'AMP is not supported in the app directory. If you need to use AMP it will continue to be supported in the pages directory.'
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle dynamic segment params.
|
// Handle dynamic segment params.
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
/* eslint-env jest */
|
||||||
|
import { sandbox } from './helpers'
|
||||||
|
import { createNextDescribe, FileRef } from 'e2e-utils'
|
||||||
|
import path from 'path'
|
||||||
|
|
||||||
|
createNextDescribe(
|
||||||
|
'Error Overlay unsupported app features',
|
||||||
|
{
|
||||||
|
files: new FileRef(path.join(__dirname, 'fixtures', 'default-template')),
|
||||||
|
dependencies: {
|
||||||
|
react: 'latest',
|
||||||
|
'react-dom': 'latest',
|
||||||
|
},
|
||||||
|
skipStart: true,
|
||||||
|
},
|
||||||
|
({ next }) => {
|
||||||
|
it('should show error exporting AMP config in app dir', async () => {
|
||||||
|
const { session, cleanup } = await sandbox(next)
|
||||||
|
|
||||||
|
// Add AMP exprot
|
||||||
|
await session.patch(
|
||||||
|
'app/page.js',
|
||||||
|
`
|
||||||
|
export const config = { amp: true }
|
||||||
|
|
||||||
|
import Component from '../index'
|
||||||
|
export default function Page() {
|
||||||
|
return <Component />
|
||||||
|
}
|
||||||
|
`
|
||||||
|
)
|
||||||
|
|
||||||
|
await session.hasRedbox(true)
|
||||||
|
expect(await session.getRedboxDescription()).toInclude(
|
||||||
|
'AMP is not supported in the app directory. If you need to use AMP it will continue to be supported in the pages directory.'
|
||||||
|
)
|
||||||
|
|
||||||
|
await cleanup()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
Loading…
Reference in a new issue