flutter_pub_analyzer
A powerful CLI tool to analyze and manage Dart & Flutter dependencies. This tool helps developers understand their project's dependency tree, identify used and unused packages/assets, and assess the health of their dependencies.
Features
- Dependency Analysis: Scans
pubspec.yamlandpubspec.lockto list direct and transitive dependencies. - Dependency Health Reporting: Fetches health scores (pubScore, likes, popularity, maintenance status) from pub.dev for each dependency.
- Used Package/Asset Detection: Identifies packages and assets actually used in the project source code. (Note: Asset scanning is planned, but not fully implemented in the provided code)
- Dependency Graph Visualization: Generates Graphviz DOT or Mermaid-compatible strings to visualize the dependency tree.
- CLI Interface: Easy-to-use command-line interface for analysis and reporting.
Installation
This is a Dart CLI tool. You can install it globally or run it directly from its source code.
From Pub.dev (Coming Soon)
Once published to pub.dev, you will be able to install it globally using:
dart pub global activate flutter_pub_analyzer
From Source
- Clone the repository:
git clone https://github.com/your_username/flutter_pub_analyzer.git cd flutter_pub_analyzer - Get dependencies:
dart pub get
Usage
The tool provides two main commands: analyze and graph.
analyze Command
The analyze command performs a comprehensive analysis of your project's dependencies and used resources.
dart run bin/flutter_pub_analyzer.dart analyze
Output Example:
Running analysis...
Dependencies found: 5
- path (1.8.3) - Health: Good
- http (0.13.5) - Health: Excellent
- args (2.3.0) - Health: Good
- yaml (3.1.0) - Health: Excellent
- test (1.19.5) - Health: Excellent
Used packages: 3
Used assets: 0
(Note: The actual output will vary based on project dependencies and the HealthFetcher results. The asset count is currently 0 as per asset_scanner.dart initial implementation)
graph Command
The graph command generates a string representation of your dependency graph, which can be used with visualization tools like Graphviz or Mermaid.
Generate Graphviz DOT string
To generate a Graphviz DOT string:
dart run bin/flutter_pub_analyzer.dart graph --dot
Output Example:
digraph G {
rankdir=LR;
node [shape=box];
"flutter_pub_analyzer" -> "path";
"flutter_pub_analyzer" -> "http";
"path" [label="path\n1.8.3"];
"http" [label="http\n0.13.5"];
// ... more nodes and edges
}
You can then use a Graphviz viewer (e.g., dot -Tpng input.dot -o output.png) to visualize this graph.
Generate Mermaid-compatible string
To generate a Mermaid-compatible string:
dart run bin/flutter_pub_analyzer.dart graph --mermaid
Output Example:
graph LR
flutter_pub_analyzer-->path
flutter_pub_analyzer-->http
path[path\n1.8.3]
http[http\n0.13.5]
// ... more nodes and edges
You can paste this string into a Mermaid live editor or integrate it with tools that support Mermaid syntax.
Contributing
We welcome contributions! Please see our CONTRIBUTING.md for more details. (Note: CONTRIBUTING.md does not exist yet, this is a placeholder)
License
This project is licensed under the MIT License.