Your dependencies, naked.

Manage client-side dependencies with npm install, then import them by name — no bundler, no build step, no CDN.

Three steps, then forget it’s there

  1. Install Nudeps once per project

    npx nudeps install
    

    This adds Nudeps to your devDependencies and gives your package.json two scripts: dependencies, so Nudeps re-runs itself every time you npm install or npm uninstall, and prepare, so a fresh clone is ready too. No watcher to start, nothing to remember.

  2. Add the import map to your HTML

    <script src="/importmap.js"></script>
    

    One classic <script>, before any module scripts. Nudeps keeps the file up to date; the tag never changes.

  3. Install dependencies like you always have

    npm install vue
    

    Nudeps copies vue and everything it depends on to client_modules/, in versioned directories that cache like a CDN, and adds them to the import map.

That’s it. Bare specifiers now work in the browser, served from your own domain:

import { createApp } from "vue";

No bundler, no build step, no CDN. See it running in the demos, or read the full walkthrough.

Background