dependency-cruiser
eslint-plugin-import
dependency-cruiser | eslint-plugin-import | |
---|---|---|
8 | 45 | |
4,965 | 5,309 | |
- | 0.7% | |
9.2 | 8.3 | |
21 days ago | 10 days ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dependency-cruiser
-
Taking Frontend Architecture Serious with dependency-cruiser
With dependency-cruiser, you can enforce which imports are allowed. This enables you to create an architecture fitness function that ensures your code continues to adhere to the initial design. You can also visualize your dependencies to gain a clearer understanding of your code's actual structure, allowing you to compare it with your mental model and make improvements where necessary.
-
Visualisation tool
something like https://github.com/sverweij/dependency-cruiser maybe https://github.com/pahen/madge or https://github.com/antoine-coulon/skott
-
[AskJS] What ESLint rules do you use to achieve better isolation of components?
I've personally fallen in love with Dependency Cruiser, which lets you set any arbitrary import rules you want on your repository. With it, you can enforce common things, like, "You can only import through the index file, if one exists", but you can also make custom-tailored rules for your specific project. For example, maybe your project is divided into three large folders - folder1 is allowed to import from folder2 and folder3, folder2 can import from folder3, and folder3 can not import from anyone else. Well, you can enforce that too, or whatever you need.
-
Best Practices for TypeScript Monorepo
Dependency Cruiser works great, can even render visuals:
https://github.com/sverweij/dependency-cruiser
NX[0] also has logic for handling this issue
[0]: https://nx.dev/
-
how to automatically run a script / yarn command before each dev hot-reload build
I have a dependency-cruiser script that enforces codebase import rules, which I want checked on each dev hot-reload build and prod build.
-
Deprank: Use PageRank to find the most important files in your codebase
Great project!
One feature request: Running the npx command searched only for the js files, not for the ts files. When I built deprank locally with yarn, it also showed the ts files. After looking at dependency-cruiser figure it has to do with what typescript compilers are available where.
It would be great if the npx command you provide in your readme would work regardless of my local setup - dependency-cruiser has documentation and one example of a suitable npx command here: https://github.com/sverweij/dependency-cruiser/blob/develop/...
My suggestion would be to check if any ts file is part of the extension option (i.e. --ext=".js,.jsx, .ts, .tsx") and only then do the magic needed to also show ts files.
-
How We Migrated from Javascript and Flow to TypeScript at Osome
The first step is to install dependency-cruiser.
-
Is it possible to generate a flow diagram from Javascript code?
You may have a look at dependency cruiser.
eslint-plugin-import
-
Speeding up the JavaScript ecosystem – Polyfills gone rogue
[2]: https://github.com/import-js/eslint-plugin-import/pull/2447#...
-
The Best ESLint Rules for React Projects
Finally, I'd also suggest requiring named exports via import:
-
PURISTA - Thanks to amazing open-source software
eslint-plugin-import
-
How to prevent other devs from using components from UI library directly?
You can 1. use a rule like this one to ensure that no one imports from antd and 2. limit what they can import from your library via https://nodejs.org/api/packages.html#main-entry-point-export
-
Need someone to explain why this happen regarding exporting
I'd check the eslint docs. They usually have a little write up about the rule.
-
React Component file naming convention?
Next, you add the ESLint rule or TypeScript configuration so it never happens again.
-
When to Create Standalone Components in Angular?
Are you using Eslint? It is possible to remove all the unused import on file level, but I don't remember if the setting is in the recommend config or the import/ordef plugin. If configured correctly, VS Code will prompt you with an option (CTRL+.) to "Delete all unused imports". It's only on file level though.
- People’s thoughts on ordering functions alphabetically in a react component?
-
3 popular Eslint rules that can make you write worse code.
Prefer default export (from airbnb style guide) I did drop default exports for a year now to use only named exports and they are actually (a slightly) better option. They provide a better DX, since you'll have autocomplete. The downside can be conflicts (which can be solved using an as to rename it). Don't refactor your entire codebase just to use it, but keep in mind for the next projects that named exports has better tradeoffs.
-
excluding folders/fildes when building
Yeah, the code under server should never get included unless you were to (transitively) import it from your entry point like App.tsx. Small suggestion, this is a good candidate for an ESLint rule if you use that.
What are some alternatives?
emerge - Emerge is a browser-based interactive codebase and dependency visualization tool for many different programming languages. It supports some basic code quality and graph metrics and provides a simple and intuitive way to explore and analyze a codebase by using graph structures.
prettier-plugin-organize-imports - Make Prettier organize your imports using the TypeScript language service API.
madge - Create graphs from your CommonJS, AMD or ES6 module dependencies
flow-to-ts - Convert flow code to typescript
eslint-plugin-svelte3 - An ESLint plugin for Svelte v3 components.
ts-migrate - A tool to help migrate JavaScript code quickly and conveniently to TypeScript
eslint-plugin-import-helpers - ESLint plugin to help enforce a configurable order for import statements
react-border-wrapper - A wrapper for placing elements along div borders.
unimported - Find and fix dangling files and unused dependencies in your JavaScript projects.
vue-tsx-support - TSX (JSX for TypeScript) support library for Vue
turborepo - Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turborepo and Turbopack. [Moved to: https://github.com/vercel/turbo]