🔧 Drop the redundant knip entry pattern
knip derives the public entry from package.json `exports` and resolves it to src/index.ts itself, so naming the file in `entry` is redundant: maintain:knip reported it as a configuration hint, and the scan is now silent. Verified the barrel is still treated as the entry — the scope is clean with and without dist/, and with src/index.test.ts removed. Supersedes the workaround recorded in development/tooling.md, which silenced an unused-file report for the barrel that the current entry derivation no longer produces. Rewrite the section to state the behaviour and keep the rejected `paths` mapping.
This commit is contained in:
1 parent
eb1acbd9d8
commit
5025fa3870
2 files changed
+13
-12
No files matched your search
+12
-11
@@ -196,27 +196,28 @@ joining the oxfmt-superseded rules already off.
|
|||||||
are part of the public API.
|
are part of the public API.
|
||||||
- The narrower scope keeps the signal high without config-file boilerplate.
|
- The narrower scope keeps the signal high without config-file boilerplate.
|
||||||
|
|
||||||
### `knip` lists `src/index.ts` as an entry
|
### `knip` does not list the library entry
|
||||||
|
|
||||||
#### Decision (2026-09)
|
#### Decision (2026-09)
|
||||||
|
|
||||||
`knip.json` declares `"entry": ["src/index.ts", "scripts/*.ts"]`.
|
`knip.json` declares `"entry": ["scripts/*.ts"]`; the library entry
|
||||||
|
`src/index.ts` is not listed.
|
||||||
|
|
||||||
#### Why
|
#### Why
|
||||||
|
|
||||||
- Supplying `entry` **replaces** knip's default entry detection, which otherwise
|
- knip derives the public entry from `package.json` `exports` and resolves it to
|
||||||
derives the public entry from `package.json` `exports`. Adding `scripts/*.ts`
|
`src/index.ts` itself, so naming the file is a redundant pattern and
|
||||||
there therefore dropped the library entry, so knip resolved the package through
|
`maintain:knip` reports it as a configuration hint.
|
||||||
its `dist/index.js` output and reported the unreferenced source entry file
|
- Listing `scripts/*.ts` does not switch that derivation off: the scope stays
|
||||||
`src/index.ts` as an unused file.
|
clean with or without `dist/`, and with the barrel's own test removed.
|
||||||
- Naming the source entry restores the link between the public API and the
|
|
||||||
source graph without pointing knip at build output.
|
|
||||||
|
|
||||||
#### Rejected
|
#### Rejected
|
||||||
|
|
||||||
|
- `"src/index.ts"` in `entry`: it silenced an `unused files` report for the
|
||||||
|
barrel, which the derivation above no longer produces; keeping it only adds a
|
||||||
|
hint.
|
||||||
- `paths` mapping `dist/index.*` back to `src/index.ts`: more config to model a
|
- `paths` mapping `dist/index.*` back to `src/index.ts`: more config to model a
|
||||||
relation the explicit entry states directly, and it would break whenever the
|
relation knip already resolves.
|
||||||
build layout changes.
|
|
||||||
|
|
||||||
### `maintain:outdated` ignores `@types/node`
|
### `maintain:outdated` ignores `@types/node`
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user