npm-treehouse
is a tool that visualizes the dependency tree of an npm
package based on its package.json
and package-lock.json
files. It allows developers to explore and understand their project dependencies, detect duplicate versions, and optimize the package ecosystem using D3.js for an interactive graph visualization.
- Generate package-lock.json: Upload your
package.json
file, and the backend will generate the correspondingpackage-lock.json
. - Interactive Dependency Graph: Visualizes the package dependencies in an interactive graph, allowing users to explore the relationships between modules.
- Optimize Dependencies: Provides insights into duplicate versions of packages and offers suggestions for optimization.
- Real-time Reporting: Users can track real-time data from their
npm
project and explore the relationships between dependencies. - Alternative Safe Packages: Users can see which packages are vulnerable and then find alternative to it which is secure.
To get started with npm-treehouse
locally, follow these steps:
Make sure you have the following installed:
- Clone the repository:
git clone https://github.com/krishana7911/npm-treehouse.git
- Navigate to the project directory:
cd npm-treehouse
- Install the required dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and visit http://localhost:3000 to see the project in action.
- Upload package.json: Upload your project's package.json file.
- Generate package-lock.json: The backend will automatically generate the package-lock.json based on the package.json.
- View Dependency Graph: Once the package-lock.json is generated, you'll see an interactive graph that visualizes the dependencies of your project.
We welcome contributions to improve npm-treehouse! To contribute:
- Fork the repository.
- Create a new branch (
Example: git checkout -b improve-feature
). - Make the appropriate changes in the files.
- Add changes to reflect the changes made.
This project is licensed under the MIT License
- Thanks to D3.js for the amazing data-driven document manipulation library used for visualizing the dependency graph.
- Node Version Selector: Allow users to select the Node.js version they want to use for generating the package-lock.json.
- Advanced Dependency Optimization: Suggest the most efficient ways to reduce package bloat by eliminating unused or outdated dependencies.
- Automated Dependency Audit: Automatically detect vulnerabilities in dependencies and suggest updates or fixes.
If you encounter any issues or have suggestions, feel free to open an issue on the GitHub Issues page