nudeps
v0.4.2
Published
Naked dependencies, in the browser.
Readme
Web dependencies, naked.
Nudeps is a new, ultra-lightweight end-to-end dependency management system, intended to make bundler-free, local-first workflows not just possible, but actually pleasant.
It lets you use npm install/npm uninstall to manage client-side dependencies, and then use them via plain specifiers in your code (e.g. import foo from "foo") without a bundler or build step.
It works by copying a subset of your dependencies to a local directory and generating an import map that maps specifiers to these local paths. Then, the import map is automatically updated whenever dependencies change, through NPM hooks.
Features:
- ✅ No transpilation or bundling needed for either your code or your dependencies (already transpiling? No problem!)
- ✅ Granular cache busting: When a module is updated, it is automatically updated in the browser cache, and that does not affect any other modules
- ✅ Local-first workflow, no external requests, no CDN required, no additional points of failure
- ✅ Automatically updated when dependencies change No need to start anything before you can edit files — everything just works.
- ✅ No additional client-side code to run (unless you have CJS packages [^1])
- ✅ Nice URLs for non-JS resources (CSS, images, icons, etc.) — because the Web is not just JS
Even edge cases work:
- ✅ Dynamic
import() - ✅
import.meta.resolve() - ✅ CJS packages (experimental)
- ✅ Local packages (
npm install ../foo) - ✅ Git dependencies (
npm install git+https://github.com/foo/bar.git) - ✅ npm aliases (
npm install vue2@npm:vue@2)
[^1]: Except for CJS packages, which require a shim that is automatically included.
Quick start
npx nudeps installThis adds an npm hook that regenerates your import map whenever dependencies change, then runs Nudeps once.
Include the generated import map in your HTML, in a classic (non-module) <script>, before any module scripts:
<script src="/importmap.js"></script>That's it. Now npm install vue and import { createApp } from "vue" just works — no bundler, no build step, no watcher.
Documentation
- Getting Started
- How It Works — including how Nudeps compares to JSPM
- CLI
- Configuration — deployed files, aliases, overrides & modes
- Local Dependencies
- Programmatic API
- FAQ · Troubleshooting
Try it out in the demos repository, or browse them live at nudeps.dev/demos.
AI coding assistants
Nudeps ships with a SKILL.md — a comprehensive reference that teaches AI coding agents how to work with nudeps correctly (lifecycle hooks, generated artifacts, CJS handling, common mistakes, etc.).
The easiest way to install it is via the skills CLI, which supports Claude Code, Cursor, Copilot and many more agents:
npx skills add nudeps/nudeps