Comments (42)
Expo (expo.dev)
from knip.
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)
from knip.
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.
from knip.
I'd like to request support for rspack. Since rspack's configuration is roughly equivalent to webpack's configuration, it's possible that the webpack plugin could either be cloned or just tweaked to accommodate rspack instead.
I actually tried just changing the knip.json
file to have the webpack
plugin point to the rspack
configuration file and it worked fine with one exception. The rspack configuration allows specification of a builtin:
prefix on the loader property (see here) and an "Unlisted dependency" of builtin:swc-loader
is being reported by knip.
So, I think it's possible that the webpack plugin could simply be adjusted to:
- Change the detection to include
@rspack/core
and@rspack/cli
as the enablers - Add
rspack.config*.{js,ts,mjs,cjs,mts,cts}
as valid config files - Ignore loaders prefixed with
builtin:
from knip.
Ladle (#268)
from knip.
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.
from knip.
Docusaurus - https://docusaurus.io/
from knip.
Includes:
/cc @ovidiuch
from knip.
Since some of you have requested plugins for React Cosmos and Rspack, let's make it happen. Would be great if you could share and show some support with a one-time sponsorship?
@birchill has just made a one time sponsorship to see this happen. Hopefully others can join in too!
from knip.
Added plugins:
- React Cosmos
- Rspack
- Rsbuild (placeholder)
Not yet GA. Can be tested with npm i -D https://pkg.pr.new/knip@2de3924
(or any package manager). Would be very useful if you could try it out to increase coverage and improve the plugins.
Please file bugs in new GitHub issues.
from knip.
Added a few plugins in v5.28.0:
NOTE: the Nuxt plugin has no support for auto-import magic, except for defineNuxtConfig
(to prevent insta-throw/offs). Should probably add a warning on the plugin page.
from knip.
@justingrant Please file a separate issue for this (as it's not a plugin).
from knip.
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.
from knip.
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
from knip.
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
from knip.
Ionic (#604)
from knip.
Plugins added recently:
- Wrangler - thanks @DaniFoldi!
- xo - thanks @bbeesley!
- improved Ionic/Capacitor - thanks @ptmkenny!
from knip.
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!
from knip.
Similar to rspack, I'd like plugin support for rsbuild:
https://rsbuild.dev/guide/start/index
https://github.com/web-infra-dev/rsbuild
from knip.
Since some of you have requested plugins for React Cosmos and Rspack, let's make it happen. Would be great if you could share and show some support with a one-time sponsorship? 🙏 I can work on the 2 plugins in the coming weekend.
@STORIS does its sponsorships as recurring monthly rather than one-time. A monthly recurring contribution through open collective has been added, although there's no condition for that with respect to the plugin request.
from knip.
Can be tested with
npm i -D https://pkg.pr.new/knip@2de3924
(or any package manager). Would be very useful if you could try it out to increase coverage and improve the plugins.
Works great for me. Thank you!
from knip.
Re. Nuxt plugin: Usually "auto-imports" might be hard to track indeed during static or even dynamic analysis.
In general not doing much of new features myself at the moment. Sponsored might be an option (DM me). Open to pull requests!
from knip.
Vike (#275)
from knip.
WebdriverIO (#464)
from knip.
Not sure if this is a plugin or core, but support for .mdx files. (used by Storybook and other docs generators)
from knip.
from knip.
wrangler
ideas: find wrangler.toml/json and set main
as entrypoint, and exclude from unused dependencies
from knip.
is deno compat a plugin? If so, what would it take? Deno uses the web standard import_map.json
from knip.
I was gonna request xo, but I've just opened a PR for it instead since I was interested in how they work.
#621
from knip.
size-limit
(and related packages @size-limit/*
)
from knip.
For everyone interested in support for Expo, please see #126. Looking for feedback!
from knip.
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
from knip.
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.)
from knip.
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
toproject: []
(or alternatively not having to addlockfile-lint.js
toignore: []
).
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! 🇳🇱
from knip.
Since some of you have requested plugins for React Cosmos and Rspack, let's make it happen. Would be great if you could share and show some support with a one-time sponsorship? 🙏 I can work on the 2 plugins in the coming weekend.
Rsbuild should have lower threshold after that.
from knip.
@birtles @birchill @shawnmcknight @STORIS Thank you so much! Truly appreciated.
from knip.
Makefile:
lint:
npx eslint
Should mark eslint
as used. I would say this should be core functionality, e.g not a plugin.
from knip.
@webpro I know this was already requested, but are there plans to add a Nuxt plugin?
from knip.
Re. Nuxt plugin: Usually "auto-imports" might be hard to track indeed during static or even dynamic analysis.
In general not doing much of new features myself at the moment. Sponsored might be an option (DM me). Open to pull requests!
Thank you for your reply!
from knip.
preconstruct
allows multiple entrypoints to be defined in a package's package.json
file. Standalone entrypoints currently have to be manually defined using entry
.
from knip.
from knip.
from knip.
Related Issues (20)
- 🔄 Issue links are broken HOT 4
- 🐛 False positive for `unlisted` when extending a tsconfig file from a package HOT 4
- (PostCSS plugin): Add `postcss` to `referencedDependencies` when using Tailwind CSS with PostCSS HOT 2
- 💡 Add option to ignore export names using a pattern HOT 1
- 🐛 Soft-linked dependencies are considered unused HOT 2
- 🐛 Abstracted lazy imports are not detected HOT 1
- 💡 Replace `fast-glob` by `tinyglobby` HOT 5
- 🐛 false positive in Astro when an import follows an import assertion import HOT 2
- Knip doesn't enable Vue plugin in Nuxt 🐛 HOT 6
- 🐛 Dev dependencies are reported as unused HOT 1
- 🔄 Regression on importing from subdirectory of a package in node_modules HOT 5
- 💡 Have a mode or configuration option that allows for monorepos that install deps at the root HOT 5
- 🐛 Not following `references` in TS config files HOT 13
- 💡 Follow `references` in TS config file. HOT 1
- 🐛 Webpack config not found when it's not in root folder HOT 4
- 💡 `ignoreImportsUsedInFiles: []` HOT 1
- 💡 docs should have hover links HOT 2
- 🐛 `vitest.workspace.mts` Not Dectected by Vitest Plugin HOT 2
- 🐛 Impossible to Ignore Env Var False Positives in Yarn Scripts HOT 2
- 💡 Support `jsconfig.json` for import path aliases by default HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from knip.