mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
Fixes #41258 When we detect `type: "module"` in `package.json`: ~1. generate `server.mjs`~ Not necessary when `type: "module"` is set. 2. use `import` instead of `require` 3. replace `__dirname` with [ESM compatible alternative](https://blog.logrocket.com/alternatives-dirname-node-js-es-modules/) In this PR, I also moved some tests (those using `output: "standalone"`) to a new `test/production/standalone-mode` directory for easier discoverability in the future. Run the related test with `pnpm test test/production/standalone-mode/type-module/index.test.ts` ## 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 lint` - [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
59 lines
1.1 KiB
JavaScript
59 lines
1.1 KiB
JavaScript
export const getStaticProps = ({ params }) => {
|
|
console.log('getStaticProps /optional-ssg/[[...rest]]', params)
|
|
|
|
switch (params.rest?.[0]) {
|
|
case 'redirect-1': {
|
|
return {
|
|
redirect: { destination: '/somewhere', permanent: false },
|
|
}
|
|
}
|
|
case 'redirect-2': {
|
|
return {
|
|
redirect: { destination: '/somewhere-else', permanent: false },
|
|
revalidate: 5,
|
|
}
|
|
}
|
|
case 'not-found-1': {
|
|
return {
|
|
notFound: true,
|
|
}
|
|
}
|
|
case 'not-found-2': {
|
|
return {
|
|
notFound: true,
|
|
revalidate: 5,
|
|
}
|
|
}
|
|
case 'props-no-revalidate': {
|
|
return {
|
|
props: {
|
|
random: Math.random(),
|
|
params: params || null,
|
|
},
|
|
}
|
|
}
|
|
default: {
|
|
break
|
|
}
|
|
}
|
|
|
|
return {
|
|
props: {
|
|
random: Math.random(),
|
|
params: params || null,
|
|
},
|
|
revalidate: 1,
|
|
}
|
|
}
|
|
|
|
export const getStaticPaths = () => {
|
|
return {
|
|
paths: [],
|
|
fallback: true,
|
|
}
|
|
}
|
|
|
|
export default function Page(props) {
|
|
return <p id="props">{JSON.stringify(props)}</p>
|
|
}
|