@knip/mcp 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/docs/docs/blog/brief-history.md +2 -3
- package/src/docs/docs/blog/for-editors-and-agents.md +2 -3
- package/src/docs/docs/blog/knip-v3.mdx +1 -1
- package/src/docs/docs/blog/knip-v4.mdx +1 -1
- package/src/docs/docs/blog/knip-v5.mdx +1 -1
- package/src/docs/docs/blog/knip-v6.md +145 -0
- package/src/docs/docs/blog/release-notes-v2.md +1 -1
- package/src/docs/docs/blog/slim-down-to-speed-up.md +1 -1
- package/src/docs/docs/blog/state-of-knip.md +1 -1
- package/src/docs/docs/blog/two-years.mdx +1 -1
- package/src/docs/docs/explanations/comparison-and-migration.md +2 -2
- package/src/docs/docs/features/auto-fix.mdx +3 -33
- package/src/docs/docs/features/reporters.md +16 -13
- package/src/docs/docs/features/rules-and-filters.md +1 -1
- package/src/docs/docs/guides/handling-issues.mdx +32 -48
- package/src/docs/docs/guides/issue-reproduction.md +4 -8
- package/src/docs/docs/guides/performance.md +7 -62
- package/src/docs/docs/guides/using-knip-in-ci.md +2 -2
- package/src/docs/docs/index.mdx +3 -3
- package/src/docs/docs/overview/configuration.md +1 -1
- package/src/docs/docs/overview/getting-started.mdx +1 -1
- package/src/docs/docs/reference/cli.md +31 -56
- package/src/docs/docs/reference/configuration.md +7 -7
- package/src/docs/docs/reference/faq.md +48 -63
- package/src/docs/docs/reference/integrations.md +1 -2
- package/src/docs/docs/reference/issue-types.md +17 -17
- package/src/docs/docs/reference/jsdoc-tsdoc-tags.md +1 -1
- package/src/docs/docs/reference/plugins/angular.md +34 -0
- package/src/docs/docs/reference/plugins/astro-db.md +34 -0
- package/src/docs/docs/reference/plugins/astro-og-canvas.md +15 -0
- package/src/docs/docs/reference/plugins/astro.md +44 -0
- package/src/docs/docs/reference/plugins/ava.md +46 -0
- package/src/docs/docs/reference/plugins/babel.md +41 -0
- package/src/docs/docs/reference/plugins/biome.md +34 -0
- package/src/docs/docs/reference/plugins/bumpp.md +41 -0
- package/src/docs/docs/reference/plugins/bun.md +34 -0
- package/src/docs/docs/reference/plugins/c8.md +29 -0
- package/src/docs/docs/reference/plugins/capacitor.md +36 -0
- package/src/docs/docs/reference/plugins/changelogen.md +41 -0
- package/src/docs/docs/reference/plugins/changelogithub.md +41 -0
- package/src/docs/docs/reference/plugins/changesets.md +34 -0
- package/src/docs/docs/reference/plugins/commitizen.md +34 -0
- package/src/docs/docs/reference/plugins/commitlint.md +42 -0
- package/src/docs/docs/reference/plugins/convex.md +34 -0
- package/src/docs/docs/reference/plugins/create-typescript-app.md +34 -0
- package/src/docs/docs/reference/plugins/cspell.md +39 -0
- package/src/docs/docs/reference/plugins/cucumber.md +35 -0
- package/src/docs/docs/reference/plugins/cypress.md +41 -0
- package/src/docs/docs/reference/plugins/danger.md +34 -0
- package/src/docs/docs/reference/plugins/dependency-cruiser.md +46 -0
- package/src/docs/docs/reference/plugins/docusaurus.md +40 -0
- package/src/docs/docs/reference/plugins/dotenv.md +32 -0
- package/src/docs/docs/reference/plugins/drizzle.md +34 -0
- package/src/docs/docs/reference/plugins/eleventy.md +35 -0
- package/src/docs/docs/reference/plugins/eslint.md +86 -0
- package/src/docs/docs/reference/plugins/execa.md +15 -0
- package/src/docs/docs/reference/plugins/expo.md +35 -0
- package/src/docs/docs/reference/plugins/expressive-code.md +40 -0
- package/src/docs/docs/reference/plugins/gatsby.md +49 -0
- package/src/docs/docs/reference/plugins/github-action.md +34 -0
- package/src/docs/docs/reference/plugins/github-actions.md +34 -0
- package/src/docs/docs/reference/plugins/glob.md +29 -0
- package/src/docs/docs/reference/plugins/graphql-codegen.md +46 -0
- package/src/docs/docs/reference/plugins/hardhat.md +34 -0
- package/src/docs/docs/reference/plugins/husky.md +40 -0
- package/src/docs/docs/reference/plugins/i18next-parser.md +46 -0
- package/src/docs/docs/reference/plugins/jest.md +51 -0
- package/src/docs/docs/reference/plugins/karma.md +39 -0
- package/src/docs/docs/reference/plugins/knex.md +34 -0
- package/src/docs/docs/reference/plugins/ladle.md +39 -0
- package/src/docs/docs/reference/plugins/lefthook.md +46 -0
- package/src/docs/docs/reference/plugins/lint-staged.md +48 -0
- package/src/docs/docs/reference/plugins/linthtml.md +41 -0
- package/src/docs/docs/reference/plugins/lockfile-lint.md +41 -0
- package/src/docs/docs/reference/plugins/lost-pixel.md +34 -0
- package/src/docs/docs/reference/plugins/markdownlint.md +34 -0
- package/src/docs/docs/reference/plugins/mdx.md +38 -0
- package/src/docs/docs/reference/plugins/mdxlint.md +38 -0
- package/src/docs/docs/reference/plugins/metro.md +46 -0
- package/src/docs/docs/reference/plugins/mocha.md +47 -0
- package/src/docs/docs/reference/plugins/moonrepo.md +34 -0
- package/src/docs/docs/reference/plugins/msw.md +35 -0
- package/src/docs/docs/reference/plugins/nano-staged.md +39 -0
- package/src/docs/docs/reference/plugins/nest.md +36 -0
- package/src/docs/docs/reference/plugins/netlify.md +41 -0
- package/src/docs/docs/reference/plugins/next-intl.md +34 -0
- package/src/docs/docs/reference/plugins/next-mdx.md +35 -0
- package/src/docs/docs/reference/plugins/next.md +52 -0
- package/src/docs/docs/reference/plugins/nitro.md +52 -0
- package/src/docs/docs/reference/plugins/node-modules-inspector.md +49 -0
- package/src/docs/docs/reference/plugins/node.md +50 -0
- package/src/docs/docs/reference/plugins/nodemon.md +30 -0
- package/src/docs/docs/reference/plugins/npm-package-json-lint.md +41 -0
- package/src/docs/docs/reference/plugins/nuxt.md +55 -0
- package/src/docs/docs/reference/plugins/nx.md +62 -0
- package/src/docs/docs/reference/plugins/nyc.md +39 -0
- package/src/docs/docs/reference/plugins/oclif.md +34 -0
- package/src/docs/docs/reference/plugins/openapi-ts.md +41 -0
- package/src/docs/docs/reference/plugins/oxfmt.md +46 -0
- package/src/docs/docs/reference/plugins/oxlint.md +46 -0
- package/src/docs/docs/reference/plugins/parcel.md +38 -0
- package/src/docs/docs/reference/plugins/payload.md +40 -0
- package/src/docs/docs/reference/plugins/playwright-ct.md +40 -0
- package/src/docs/docs/reference/plugins/playwright-test.md +29 -0
- package/src/docs/docs/reference/plugins/playwright.md +49 -0
- package/src/docs/docs/reference/plugins/plop.md +34 -0
- package/src/docs/docs/reference/plugins/pm2.md +37 -0
- package/src/docs/docs/reference/plugins/pnpm.md +34 -0
- package/src/docs/docs/reference/plugins/postcss.md +46 -0
- package/src/docs/docs/reference/plugins/preconstruct.md +34 -0
- package/src/docs/docs/reference/plugins/prettier.md +39 -0
- package/src/docs/docs/reference/plugins/prisma.md +62 -0
- package/src/docs/docs/reference/plugins/qwik.md +40 -0
- package/src/docs/docs/reference/plugins/raycast.md +34 -0
- package/src/docs/docs/reference/plugins/react-cosmos.md +40 -0
- package/src/docs/docs/reference/plugins/react-native.md +34 -0
- package/src/docs/docs/reference/plugins/react-router.md +37 -0
- package/src/docs/docs/reference/plugins/relay.md +53 -0
- package/src/docs/docs/reference/plugins/release-it.md +34 -0
- package/src/docs/docs/reference/plugins/remark.md +40 -0
- package/src/docs/docs/reference/plugins/remix.md +43 -0
- package/src/docs/docs/reference/plugins/rollup.md +49 -0
- package/src/docs/docs/reference/plugins/rsbuild.md +34 -0
- package/src/docs/docs/reference/plugins/rslib.md +34 -0
- package/src/docs/docs/reference/plugins/rspack.md +34 -0
- package/src/docs/docs/reference/plugins/rstest.md +34 -0
- package/src/docs/docs/reference/plugins/sanity.md +38 -0
- package/src/docs/docs/reference/plugins/semantic-release.md +41 -0
- package/src/docs/docs/reference/plugins/sentry.md +36 -0
- package/src/docs/docs/reference/plugins/simple-git-hooks.md +38 -0
- package/src/docs/docs/reference/plugins/size-limit.md +38 -0
- package/src/docs/docs/reference/plugins/sst.md +34 -0
- package/src/docs/docs/reference/plugins/starlight.md +34 -0
- package/src/docs/docs/reference/plugins/storybook.md +43 -0
- package/src/docs/docs/reference/plugins/stryker.md +34 -0
- package/src/docs/docs/reference/plugins/stylelint.md +41 -0
- package/src/docs/docs/reference/plugins/svelte.md +34 -0
- package/src/docs/docs/reference/plugins/sveltekit.md +34 -0
- package/src/docs/docs/reference/plugins/svgo.md +38 -0
- package/src/docs/docs/reference/plugins/svgr.md +43 -0
- package/src/docs/docs/reference/plugins/swc.md +34 -0
- package/src/docs/docs/reference/plugins/syncpack.md +41 -0
- package/src/docs/docs/reference/plugins/tailwind.md +34 -0
- package/src/docs/docs/reference/plugins/tanstack-router.md +47 -0
- package/src/docs/docs/reference/plugins/taskfile.md +43 -0
- package/src/docs/docs/reference/plugins/travis.md +34 -0
- package/src/docs/docs/reference/plugins/ts-node.md +30 -0
- package/src/docs/docs/reference/plugins/tsdown.md +46 -0
- package/src/docs/docs/reference/plugins/tsup.md +46 -0
- package/src/docs/docs/reference/plugins/tsx.md +48 -0
- package/src/docs/docs/reference/plugins/typedoc.md +53 -0
- package/src/docs/docs/reference/plugins/typescript.md +57 -0
- package/src/docs/docs/reference/plugins/unbuild.md +34 -0
- package/src/docs/docs/reference/plugins/unocss.md +39 -0
- package/src/docs/docs/reference/plugins/vercel-og.md +41 -0
- package/src/docs/docs/reference/plugins/vike.md +37 -0
- package/src/docs/docs/reference/plugins/vite.md +50 -0
- package/src/docs/docs/reference/plugins/vitepress.md +37 -0
- package/src/docs/docs/reference/plugins/vitest.md +72 -0
- package/src/docs/docs/reference/plugins/vue.md +34 -0
- package/src/docs/docs/reference/plugins/webdriver-io.md +34 -0
- package/src/docs/docs/reference/plugins/webpack.md +55 -0
- package/src/docs/docs/reference/plugins/wireit.md +34 -0
- package/src/docs/docs/reference/plugins/wrangler.md +34 -0
- package/src/docs/docs/reference/plugins/xo.md +40 -0
- package/src/docs/docs/reference/plugins/yarn.md +35 -0
- package/src/docs/docs/reference/plugins/yorkie.md +34 -0
- package/src/docs/docs/reference/plugins/zx.md +15 -0
- package/src/docs/docs/typescript/unused-exports.md +7 -8
- package/src/docs/docs/writing-a-plugin/argument-parsing.md +1 -2
- package/src/docs/docs/writing-a-plugin/index.md +15 -36
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Vitest
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"vitest"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"vitest": {
|
|
18
|
+
"config": [
|
|
19
|
+
"vitest.config.{js,mjs,ts,cjs,mts,cts}",
|
|
20
|
+
"vitest.{workspace,projects}.{js,mjs,ts,cjs,mts,cts,json}"
|
|
21
|
+
],
|
|
22
|
+
"entry": [
|
|
23
|
+
"**/*.{bench,test,test-d,spec,spec-d}.?(c|m)[jt]s?(x)",
|
|
24
|
+
"**/__mocks__/**/*.[jt]s?(x)"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
31
|
+
|
|
32
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
33
|
+
|
|
34
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
35
|
+
|
|
36
|
+
## Shell commands
|
|
37
|
+
|
|
38
|
+
This plugin adds argument parsing for the <code>vitest</code>
|
|
39
|
+
binary. Configuration:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
config: true
|
|
43
|
+
resolveInputs: (parsed ) => {
|
|
44
|
+
const inputs = [];
|
|
45
|
+
if (parsed['ui']) inputs.push(toDependency('@vitest/ui', { optional: true }));
|
|
46
|
+
if (typeof parsed['coverage'] === 'object' && parsed['coverage'].provider) {
|
|
47
|
+
inputs.push(toDependency(`@vitest/coverage-${parsed['coverage'].provider}`));
|
|
48
|
+
}
|
|
49
|
+
if (parsed['reporter']) {
|
|
50
|
+
for (const reporter of getExternalReporters([parsed['reporter']].flat())) {
|
|
51
|
+
inputs.push(toDependency(reporter));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (parsed['environment'] && parsed['environment'] !== 'node') {
|
|
55
|
+
inputs.push(toDependency(getEnvSpecifier(parsed['environment'])));
|
|
56
|
+
}
|
|
57
|
+
if (typeof parsed['typecheck'] === 'object' && parsed['typecheck'].checker) {
|
|
58
|
+
inputs.push(toDependency(parsed['typecheck'].checker === 'tsc' ? 'typescript' : parsed['typecheck'].checker));
|
|
59
|
+
}
|
|
60
|
+
return inputs;
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The configuration was generated from source code. Also see [Script Parser][2].
|
|
65
|
+
|
|
66
|
+
## Generated from source
|
|
67
|
+
|
|
68
|
+
This page was generated from the [vitest plugin source code][3].
|
|
69
|
+
|
|
70
|
+
[1]: ../../explanations/plugins.md
|
|
71
|
+
[2]: ../../features/script-parser.md
|
|
72
|
+
[3]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/vitest/index.ts
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Vue
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"vue"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"vue": {
|
|
18
|
+
"config": ["vue.config.{js,ts,mjs}"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
24
|
+
|
|
25
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
26
|
+
|
|
27
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
28
|
+
|
|
29
|
+
## Generated from source
|
|
30
|
+
|
|
31
|
+
This page was generated from the [vue plugin source code][2].
|
|
32
|
+
|
|
33
|
+
[1]: ../../explanations/plugins.md
|
|
34
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/vue/index.ts
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: WebdriverIO
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"@wdio/cli"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"webdriver-io": {
|
|
18
|
+
"config": ["wdio.conf.{js,ts}"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
24
|
+
|
|
25
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
26
|
+
|
|
27
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
28
|
+
|
|
29
|
+
## Generated from source
|
|
30
|
+
|
|
31
|
+
This page was generated from the [webdriver-io plugin source code][2].
|
|
32
|
+
|
|
33
|
+
[1]: ../../explanations/plugins.md
|
|
34
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/webdriver-io/index.ts
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: webpack
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if there's a match in `"dependencies"` or `"devDependencies"` in `package.json`:
|
|
10
|
+
|
|
11
|
+
- `webpack`
|
|
12
|
+
|
|
13
|
+
- `webpack-cli`
|
|
14
|
+
|
|
15
|
+
## Default configuration
|
|
16
|
+
|
|
17
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"webpack": {
|
|
22
|
+
"config": ["webpack.config.{js,ts,mjs,cjs,mts,cts}"]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
28
|
+
|
|
29
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
30
|
+
|
|
31
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
32
|
+
|
|
33
|
+
## Shell commands
|
|
34
|
+
|
|
35
|
+
This plugin adds argument parsing for the <code>webpack and webpack-dev-server</code>
|
|
36
|
+
binaries. Configuration:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
config: true
|
|
40
|
+
resolveInputs: (parsed ) => {
|
|
41
|
+
const inputs = [toDependency('webpack-cli')];
|
|
42
|
+
if (parsed._[0] === 'serve') inputs.push(toDependency('webpack-dev-server'));
|
|
43
|
+
return inputs;
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The configuration was generated from source code. Also see [Script Parser][2].
|
|
48
|
+
|
|
49
|
+
## Generated from source
|
|
50
|
+
|
|
51
|
+
This page was generated from the [webpack plugin source code][3].
|
|
52
|
+
|
|
53
|
+
[1]: ../../explanations/plugins.md
|
|
54
|
+
[2]: ../../features/script-parser.md
|
|
55
|
+
[3]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/webpack/index.ts
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Wireit
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"wireit"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"wireit": {
|
|
18
|
+
"config": ["package.json"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
24
|
+
|
|
25
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
26
|
+
|
|
27
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
28
|
+
|
|
29
|
+
## Generated from source
|
|
30
|
+
|
|
31
|
+
This page was generated from the [wireit plugin source code][2].
|
|
32
|
+
|
|
33
|
+
[1]: ../../explanations/plugins.md
|
|
34
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/wireit/index.ts
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Wrangler
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"wrangler"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"wrangler": {
|
|
18
|
+
"config": ["wrangler.{json,jsonc,toml}"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
24
|
+
|
|
25
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
26
|
+
|
|
27
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
28
|
+
|
|
29
|
+
## Generated from source
|
|
30
|
+
|
|
31
|
+
This page was generated from the [wrangler plugin source code][2].
|
|
32
|
+
|
|
33
|
+
[1]: ../../explanations/plugins.md
|
|
34
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/wrangler/index.ts
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: xo
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"xo"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"xo": {
|
|
18
|
+
"config": [
|
|
19
|
+
"package.json",
|
|
20
|
+
".xo-config",
|
|
21
|
+
".xo-config.{js,cjs,json}",
|
|
22
|
+
"xo.config.{js,cjs}"
|
|
23
|
+
],
|
|
24
|
+
"entry": [".xo-config.{js,cjs}", "xo.config.{js,cjs}"]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
30
|
+
|
|
31
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
32
|
+
|
|
33
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
34
|
+
|
|
35
|
+
## Generated from source
|
|
36
|
+
|
|
37
|
+
This page was generated from the [xo plugin source code][2].
|
|
38
|
+
|
|
39
|
+
[1]: ../../explanations/plugins.md
|
|
40
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/xo/index.ts
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Yarn
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled when a `yarn.lock` file is found in the root folder.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"yarn": {
|
|
18
|
+
"config": [".yarnrc.yml"],
|
|
19
|
+
"entry": ["yarn.config.cjs"]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
25
|
+
|
|
26
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
27
|
+
|
|
28
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
29
|
+
|
|
30
|
+
## Generated from source
|
|
31
|
+
|
|
32
|
+
This page was generated from the [yarn plugin source code][2].
|
|
33
|
+
|
|
34
|
+
[1]: ../../explanations/plugins.md
|
|
35
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/yarn/index.ts
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: yorkie
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"yorkie"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Default configuration
|
|
12
|
+
|
|
13
|
+
If this plugin is enabled, the following configuration is added automatically:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"yorkie": {
|
|
18
|
+
"config": ["package.json"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Depending on local configuration, plugins may modify the defaults as shown.
|
|
24
|
+
|
|
25
|
+
Custom `config` or `entry` options override default values, they are not merged.
|
|
26
|
+
|
|
27
|
+
See [Plugins][1] for more details about plugins and their `entry` and `config` options.
|
|
28
|
+
|
|
29
|
+
## Generated from source
|
|
30
|
+
|
|
31
|
+
This page was generated from the [yorkie plugin source code][2].
|
|
32
|
+
|
|
33
|
+
[1]: ../../explanations/plugins.md
|
|
34
|
+
[2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/yorkie/index.ts
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: zx
|
|
3
|
+
sidebar:
|
|
4
|
+
hidden: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enabled
|
|
8
|
+
|
|
9
|
+
This plugin is enabled if `"zx"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
|
|
10
|
+
|
|
11
|
+
## Generated from source
|
|
12
|
+
|
|
13
|
+
This page was generated from the [zx plugin source code][1].
|
|
14
|
+
|
|
15
|
+
[1]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/zx/index.ts
|
|
@@ -55,9 +55,9 @@ them to ensure no unintended modifications were made.
|
|
|
55
55
|
|
|
56
56
|
## Can Knip handle large codebases?
|
|
57
57
|
|
|
58
|
-
Absolutely. Knip supports [monorepos with workspaces][5]
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
Absolutely. Knip supports [monorepos with workspaces][5] to efficiently analyze
|
|
59
|
+
large monorepos. This makes it easier and more fun to manage and optimize large
|
|
60
|
+
multi-package projects.
|
|
61
61
|
|
|
62
62
|
## Does Knip work with my favorite editor or IDE?
|
|
63
63
|
|
|
@@ -70,18 +70,17 @@ to easily navigate around.
|
|
|
70
70
|
|
|
71
71
|
While linters like ESLint can find unused imports and variables within
|
|
72
72
|
individual files, Knip analyzes the entire project to determine which exports
|
|
73
|
-
are actually unused. By building [a comprehensive module graph][
|
|
73
|
+
are actually unused. By building [a comprehensive module graph][6], Knip
|
|
74
74
|
identifies exports that are not imported or used anywhere in the codebase. This
|
|
75
75
|
allows Knip to catch unused exports and dead code that ESLint and other linters
|
|
76
76
|
would miss.
|
|
77
77
|
|
|
78
|
-
Also see [Why isn't Knip an ESLint plugin?][
|
|
78
|
+
Also see [Why isn't Knip an ESLint plugin?][7]
|
|
79
79
|
|
|
80
80
|
[1]: ../overview/getting-started.mdx
|
|
81
81
|
[2]: ../reference/faq.md#what-does-knip-look-for-in-source-files
|
|
82
82
|
[3]: ../guides/working-with-commonjs.md
|
|
83
83
|
[4]: ../features/auto-fix.mdx
|
|
84
84
|
[5]: ../features/monorepos-and-workspaces.md
|
|
85
|
-
[6]: ../
|
|
86
|
-
[7]: ../reference/faq.md#
|
|
87
|
-
[8]: ../reference/faq.md#why-isnt-knip-an-eslint-plugin
|
|
85
|
+
[6]: ../reference/faq.md#whats-in-the-graphs
|
|
86
|
+
[7]: ../reference/faq.md#why-isnt-knip-an-eslint-plugin
|
|
@@ -190,8 +190,7 @@ returned as numbers by minimist.
|
|
|
190
190
|
[3]: #boolean
|
|
191
191
|
[4]: #string
|
|
192
192
|
[5]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/types/args.ts
|
|
193
|
-
[6]:
|
|
194
|
-
https://github.com/search?q=repo%3Awebpro-nl%2Fknip++path%3Apackages%2Fknip%2Fsrc%2Fplugins+%22const+args+%3D%22&type=code
|
|
193
|
+
[6]: https://github.com/search?q=repo%3Awebpro-nl%2Fknip++path%3Apackages%2Fknip%2Fsrc%2Fplugins+%22const+args+%3D%22&type=code
|
|
195
194
|
[7]: #args
|
|
196
195
|
[8]: #binaries
|
|
197
196
|
[9]: #config
|
|
@@ -251,20 +251,20 @@ This is why plugins can implement the `resolveFromAST` function.
|
|
|
251
251
|
### 8. resolveFromAST
|
|
252
252
|
|
|
253
253
|
Let's take a look at the Astro plugin implementation. This example assumes some
|
|
254
|
-
familiarity with Abstract Syntax Trees (AST)
|
|
255
|
-
|
|
256
|
-
fun and a little less tedious.
|
|
254
|
+
familiarity with Abstract Syntax Trees (AST). Knip provides AST helpers to make
|
|
255
|
+
implementing plugins more fun and a little less tedious.
|
|
257
256
|
|
|
258
257
|
Anyway, let's dive in. Here's how we're adding the Starlight `components` paths
|
|
259
258
|
to the default `production` file patterns:
|
|
260
259
|
|
|
261
260
|
```ts
|
|
262
|
-
import
|
|
261
|
+
import type { Program } from 'oxc-parser';
|
|
263
262
|
import {
|
|
263
|
+
findCallArg,
|
|
264
264
|
getDefaultImportName,
|
|
265
265
|
getImportMap,
|
|
266
266
|
getPropertyValues,
|
|
267
|
-
} from '../../typescript/ast-helpers.
|
|
267
|
+
} from '../../typescript/ast-helpers.ts';
|
|
268
268
|
|
|
269
269
|
const title = 'Astro';
|
|
270
270
|
|
|
@@ -275,44 +275,24 @@ const production = [
|
|
|
275
275
|
'src/actions/index.{js,ts}',
|
|
276
276
|
];
|
|
277
277
|
|
|
278
|
-
const
|
|
279
|
-
const
|
|
280
|
-
const importMap = getImportMap(sourceFile);
|
|
278
|
+
const getComponentPaths = (program: Program) => {
|
|
279
|
+
const importMap = getImportMap(program);
|
|
281
280
|
const importName = getDefaultImportName(importMap, '@astrojs/starlight');
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
ts.isCallExpression(node) &&
|
|
286
|
-
ts.isIdentifier(node.expression) &&
|
|
287
|
-
node.expression.text === importName // match the starlight() function call
|
|
288
|
-
) {
|
|
289
|
-
const starlightConfig = node.arguments[0];
|
|
290
|
-
if (ts.isObjectLiteralExpression(starlightConfig)) {
|
|
291
|
-
const values = getPropertyValues(starlightConfig, 'components');
|
|
292
|
-
for (const value of values) componentPaths.add(value);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
ts.forEachChild(node, visit);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
visit(sourceFile);
|
|
300
|
-
|
|
301
|
-
return componentPaths;
|
|
281
|
+
if (!importName) return new Set<string>();
|
|
282
|
+
const starlightConfig = findCallArg(program, importName);
|
|
283
|
+
return getPropertyValues(starlightConfig, 'components');
|
|
302
284
|
};
|
|
303
285
|
|
|
304
|
-
const resolveFromAST: ResolveFromAST = (
|
|
305
|
-
|
|
306
|
-
// as production entry files so they're also part of the analysis
|
|
307
|
-
const componentPaths = getComponentPathsFromSourceFile(sourceFile);
|
|
286
|
+
const resolveFromAST: ResolveFromAST = (program: Program) => {
|
|
287
|
+
const componentPaths = getComponentPaths(program);
|
|
308
288
|
return [...production, ...componentPaths].map(id => toProductionEntry(id));
|
|
309
289
|
};
|
|
310
290
|
|
|
311
|
-
const plugin: Plugin {
|
|
291
|
+
const plugin: Plugin = {
|
|
312
292
|
title,
|
|
313
293
|
production,
|
|
314
294
|
resolveFromAST,
|
|
315
|
-
}
|
|
295
|
+
};
|
|
316
296
|
|
|
317
297
|
export default plugin;
|
|
318
298
|
```
|
|
@@ -385,8 +365,7 @@ plugin, this might be the right time to open a pull request!
|
|
|
385
365
|
[1]: #create-a-new-plugin
|
|
386
366
|
[2]: ../reference/plugins.md
|
|
387
367
|
[3]: ../explanations/plugins.md#entry-files-from-config-files
|
|
388
|
-
[4]:
|
|
389
|
-
https://github.com/webpro-nl/knip/blob/6a6954386b33ee8a2919005230a4bc094e11bc03/knip.json#L12
|
|
368
|
+
[4]: https://github.com/webpro-nl/knip/blob/6a6954386b33ee8a2919005230a4bc094e11bc03/knip.json#L12
|
|
390
369
|
[5]: ./inputs.md
|
|
391
370
|
[6]: ../features/script-parser.md
|
|
392
371
|
[7]: ./argument-parsing.md
|