An intuitive Electron desktop app designed specifically for quickly managing, checking, and updating your project's global and local NPM dependencies.
- 📌 Manage global and local NPM dependencies from a user-friendly interface.
- 📂 Quickly scan directories for projects containing
package.jsonfiles. - ⚙️ Clearly separate production and development dependencies.
- ✅ Easily update all or selectively chosen dependencies.
- 🌗 Supports Light, Dark, and System theme modes.
- 🔐 Secure, native OS prompts (
sudo) for installing global updates.
- Node.js version 16.x or higher is required.
- Git
- Supported OS: Windows, macOS, Linux
git clone https://github.com/d4rylp/npm-dep.git
cd npm-pkg
npm installTo launch in development mode:
npm run startThis command:
- Compiles TypeScript files.
- Copies the HTML and CSS files to the build directory.
- Starts the Electron app.
- Click "Pick Folder" to select the directory you wish to manage.
- The application scans the chosen folder and identifies projects with
package.json. - Review dependencies, check current vs. latest versions, and perform updates:
- Update all dependencies at once.
- Or update selected dependencies individually.
- Use the theme selector to switch between Light, Dark, or System themes.
src/
├── app/ # Frontend HTML and CSS
│ ├── index.html
│ └── styles.css
├── utils/ # Electron backend logic
│ ├── main.ts
│ └── preload.ts
dist/ # Compiled files output
package.json # Project dependencies and scripts
tsconfig.json # TypeScript configuration
Available scripts in package.json:
{
"compile": "tsc",
"copy-html-css": "cp -r src/app dist/app",
"start": "npm run compile && npm run copy-html-css && electron .",
"build": "npm run compile && npm run copy-html-css && electron-builder"
}The application uses Electron's Inter-Process Communication (IPC) for backend-frontend interaction.
pickFolder()getFolders(basePath)checkUpdates(folderPath, isDev)installUpdates(folderPath, isDev)installSpecificUpdates(folderPath, deps[], isDev)checkGlobalUpdates()installGlobalUpdates()installSpecificGlobalUpdates(deps[])
Some operations, particularly global dependency updates, require administrative privileges. These are securely managed with sudo-prompt which invokes native OS prompts for elevated permissions.
- Currently supports only NPM-based projects (not compatible with Yarn, pnpm, etc.).
- Assumes managed projects adhere strictly to having a
package.jsonfile. - Global updates may fail silently if permission requests are denied.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ by Daryl Peter.