b9be75df03
### What? In `app` all directories starting with `_` are now considered private and won't be routed. E.g. `app/_components/page.js` -> does not route If you want to have a route starting with an underscore like `/_settings` you can use `%5F` which is the url encode version of `_`: `app/%5Fsettings/page.js`-> does route ### Why? Ensures that you can create directories that will never conflict with Next.js internal naming. E.g. when additional conventions are added for file names. ### How? It's a bit more involved than you might expected: - build - While resolving entries by traversing `app` parts with `_` are ignored - While normalizing entires `%5F` is replaced with `_` - I've changed one case that was relying on the entry name for resolving to use the full path to the file instead. - dev - Ignored paths with underscore from being generated as part of the initial scan of the filesystem - Updated development and production the route matcher to replace `%5F` with `_` so that it matches the right path. fix NEXT-798 ([link](https://linear.app/vercel/issue/NEXT-798)) ([link](https://linear.app/vercel/issue/NEXT-798)) <!-- ## For Contributors ### Improving Documentation or adding/fixing Examples - The "examples guidelines" are followed from our contributing doc https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md - Make sure the linting passes by running `pnpm build && pnpm lint`. See https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md ### Fixing a bug - Related issues linked using `fixes #number` - Tests added. See: https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs - Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md ### Adding a feature - Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. (A discussion must be opened, see https://github.com/vercel/next.js/discussions/new?category=ideas) - Related issues/discussions are linked using `fixes #number` - e2e tests added (https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs - Documentation added - Telemetry added. In case of a feature if it's used or not. - Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md ## For Maintainers - Minimal description (aim for explaining to someone not on the team to understand the PR) - When linking to a Slack thread, you might want to share details of the conclusion - Link both the Linear (Fixes NEXT-xxx) and the GitHub issues - Add review comments if necessary to explain to the reviewer the logic behind a change ### What? ### Why? ### How? Closes NEXT- Fixes # --> --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> |
||
---|---|---|
.. | ||
404-page-router | ||
app-dir | ||
basepath | ||
browserslist | ||
browserslist-extends | ||
config-promise-export | ||
dynamic-route-interpolation | ||
edge-api-endpoints-can-receive-body | ||
edge-async-local-storage | ||
edge-can-read-request-body | ||
edge-can-use-wasm-files | ||
edge-compiler-can-import-blob-assets | ||
edge-compiler-module-exports-preference | ||
edge-configurable-runtime | ||
edge-render-getserversideprops | ||
edge-runtime-uses-edge-light-import-specifier-for-packages | ||
fetch-failures-have-good-stack-traces-in-edge-runtime | ||
getserversideprops | ||
handle-non-hoisted-swc-helpers | ||
i18n-api-support | ||
i18n-data-fetching-redirect | ||
i18n-default-locale-redirect | ||
i18n-disallow-multiple-locales | ||
i18n-ignore-redirect-source-locale | ||
i18n-ignore-rewrite-source-locale | ||
ignore-invalid-popstateevent | ||
instrumentation-hook | ||
instrumentation-hook-src | ||
link-with-api-rewrite | ||
manual-client-base-path | ||
middleware-base-path | ||
middleware-custom-matchers | ||
middleware-custom-matchers-basepath | ||
middleware-custom-matchers-i18n | ||
middleware-fetches-with-any-http-method | ||
middleware-fetches-with-body | ||
middleware-general | ||
middleware-matcher | ||
middleware-redirects | ||
middleware-request-header-overrides | ||
middleware-responses | ||
middleware-rewrites | ||
middleware-shallow-link | ||
middleware-trailing-slash | ||
multi-zone | ||
new-link-behavior | ||
next-font | ||
next-head | ||
next-image-forward-ref | ||
next-script | ||
no-eslint-warn-with-no-eslint-config | ||
nonce-head-manager | ||
og-api | ||
opentelemetry | ||
postcss-config-cjs | ||
prerender | ||
prerender-native-module | ||
proxy-request-with-middleware | ||
reload-scroll-backforward-restoration | ||
repeated-forward-slashes-error | ||
skip-trailing-slash-redirect | ||
ssr-react-context | ||
streaming-ssr | ||
styled-jsx | ||
swc-warnings | ||
switchable-runtime | ||
test-template/{{ toFileName name }} | ||
test-utils-tests/basic | ||
trailingslash-with-rewrite | ||
transpile-packages | ||
type-module-interop | ||
undici-fetch | ||
yarn-pnp/test | ||
basepath-trailing-slash.test.ts | ||
basepath.test.ts | ||
example-file.txt | ||
example.txt | ||
prerender-crawler.test.ts | ||
prerender-native-module.test.ts | ||
prerender.test.ts |