Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request new plugins here #483

Open
webpro opened this issue Jan 29, 2024 · 26 comments
Open

Request new plugins here #483

webpro opened this issue Jan 29, 2024 · 26 comments
Labels
plugin An issue or enhancement in a plugin

Comments

@webpro
Copy link
Collaborator

webpro commented Jan 29, 2024

Please add one comment per plugin (please link to website/repo/docs), which others can then upvote using reactions like 👍 (not more comments).

The idea is that you can request/upvote plugins here. Contributors/me can implement them.

Please make sure the plugin isn't already available/listed on https://knip.dev/reference/plugins

@webpro webpro added the plugin An issue or enhancement in a plugin label Jan 29, 2024
@webpro webpro pinned this issue Jan 29, 2024
@webpro
Copy link
Collaborator Author

webpro commented Jan 29, 2024

Ladle (#268)

@webpro
Copy link
Collaborator Author

webpro commented Jan 29, 2024

Vike (#275)

@birtles
Copy link
Contributor

birtles commented Jan 30, 2024

React cosmos

Includes:

/cc @ovidiuch

@Faithfinder
Copy link
Contributor

NestJS, maybe?

It's very class based, so it would be focused on classMembers rules.

It would need to detect usage of class members by decorators, basically - e.g, something decorated with @ResolveField is used.

@webpro
Copy link
Collaborator Author

webpro commented Feb 4, 2024

WebdriverIO (#464)

@justingrant
Copy link

Not sure if this is a plugin or core, but support for .mdx files. (used by Storybook and other docs generators)

@webpro
Copy link
Collaborator Author

webpro commented Feb 5, 2024

@justingrant Please file a separate issue for this (as it's not a plugin).

@netner-d
Copy link

netner-d commented Feb 9, 2024

Serverless framework (1 183 585 downloads a week). It uses serverless.yml files for config and includes :

  • Plugins (docs/eg)
  • Serverless function definitions, so entries (docs/eg, under functions.*.handler field)

@webpro
Copy link
Collaborator Author

webpro commented Feb 9, 2024

Please don't dump words here. It'll be a lot more convincing if you'd be more precise and provide one or two links to the library and/or configuration pages to avoid any ambiguity.

@netner-d
Copy link

netner-d commented Feb 9, 2024

Please don't dump words here. It'll be a lot more convincing if you'd be more precise and provide one or two links to the library and/or configuration pages to avoid any ambiguity.

Yeah, absolutely sorry about that, I thought it was the method to collect people opinion as I saw similar comments above... I'm rectifying

@webpro
Copy link
Collaborator Author

webpro commented Mar 24, 2024

tsd (#535)

@DaniFoldi
Copy link
Contributor

wrangler
ideas: find wrangler.toml/json and set main as entrypoint, and exclude from unused dependencies

@webpro
Copy link
Collaborator Author

webpro commented Mar 24, 2024

Just saying, for anyone interested, it's now more fun and easier than ever to write a plugin: https://knip.dev/guides/writing-a-plugin

@guy-borderless
Copy link

is deno compat a plugin? If so, what would it take? Deno uses the web standard import_map.json

@sifferhans
Copy link

Would it be possible to create a Nuxt plugin? Nuxt heavily uses auto-imports, so I imagine it could be harder to trace down what is being used.

@auvred
Copy link
Contributor

auvred commented Apr 23, 2024

Docusaurus - https://docusaurus.io/

@webpro
Copy link
Collaborator Author

webpro commented Apr 29, 2024

Ionic (#604)

@bbeesley
Copy link
Contributor

bbeesley commented May 3, 2024

I was gonna request xo, but I've just opened a PR for it instead since I was interested in how they work.
#621

@webpro
Copy link
Collaborator Author

webpro commented May 7, 2024

Plugins added recently:

@emmanuelchucks
Copy link

Expo (expo.dev)

@tmm
Copy link
Contributor

tmm commented Jun 5, 2024

size-limit (and related packages @size-limit/*)

@webpro
Copy link
Collaborator Author

webpro commented Jun 6, 2024

For everyone interested in support for Expo, please see #126. Looking for feedback!

@jerone
Copy link
Contributor

jerone commented Jun 11, 2024

lockfile linting

lint lockfiles for improved security and trust policies

https://github.com/lirantal/lockfile-lint
https://github.com/lirantal/lockfile-lint/blob/main/packages/lockfile-lint/README.md

@webpro
Copy link
Collaborator Author

webpro commented Jun 11, 2024

lockfile linting

lint lockfiles for improved security and trust policies

https://github.com/lirantal/lockfile-lint https://github.com/lirantal/lockfile-lint/blob/main/packages/lockfile-lint/README.md

I guess a file-based configuration for the lockfile-lint package potentially leaves e.g. lockfile-lint.js as an unused file. The lockfile-lint configuration doesn't seem to contain options that can reference other packages or files, so a plugin doesn't add much other than Knip users not having to add !lockfile-lint.js to project: [] (or alternatively not having to add lockfile-lint.js to ignore: []). Maybe Knip should have another more light-weight type of plugins that basically just ignores this type of configuration files.

(For completeness sake: the act of linting lockfiles is outside the scope of Knip, and apparently there's a package that does exactly that.)

@jerone
Copy link
Contributor

jerone commented Jun 12, 2024

I guess a file-based configuration for the lockfile-lint package potentially leaves e.g. lockfile-lint.js as an unused file.

Correct. That was the reason for creating this suggestion.

The lockfile-lint configuration doesn't seem to contain options that can reference other packages or files [..]

Also correct. It's just an configuration file. It references no other dependencies/extension/extends/plugins/etc...

[..] so a plugin doesn't add much other than Knip users not having to add !lockfile-lint.js to project: [] (or alternatively not having to add lockfile-lint.js to ignore: []).

Yes, adding it to the ignore setting is my current "work-around".

Maybe Knip should have another more light-weight type of plugins that basically just ignores this type of configuration files.

Lockfile-linting uses https://github.com/cosmiconfig/cosmiconfig (v8) for their config file, as do many other tooling. Maybe these config files can be ignored by default somehow.

Sadly, custom local plugins are not on the roadmap. But the ignore setting is sufficient in this case.

Keep up the great work! 🇳🇱

@webpro
Copy link
Collaborator Author

webpro commented Jun 17, 2024

Knip v5.21.0 contains a few new plugins:

Especially the latter is a bit rudimentary, feel free to open issues if you have any!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plugin An issue or enhancement in a plugin
Projects
None yet
Development

No branches or pull requests