Add config to exclude files from routing #2932
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
Tests
pnpm test
and lint the project withpnpm lint
andpnpm check
Changesets
pnpx changeset
and following the prompts. All changesets should bepatch
until SvelteKit 1.0Problem
The following directory layout creates an endpoint for
post.spec.js
andpost.md
, and the only way to opt out is to make them private modules with an underscore/dot prefix:Some developers might require the exact layout/naming shown, where:
Solution
This PR adds
kit.excludes
config, which accepts an array ofString
,RegExp
, orFunction
.String
- The basename of the file/directory is compared against the string, and it's excluded if matches.RegExp
- The basename of the file/directory is tested against the regular expression, and it's excluded if matches.({ filepath, basename }) => boolean
- The file/directory is excluded if the function returnstrue
.The default would be
[^_.]
to match the current behavior. This also would enable users to override the current behavior, allowing for underscore/dot-prefixed files to be included in routing.Example config:
Closes #2930