A Yeoman generator that scaffolds Verdaccio plugins with TypeScript and a ready-to-use project structure β so you can focus on writing plugin logic instead of boilerplate.
npm install -g yo generator-verdaccio-pluginyo verdaccio-pluginThe generator walks you through a short set of prompts and creates a verdaccio-<name>/ directory with everything you need.
| Prompt | Description |
|---|---|
| Plugin type | auth, storage, middleware, or filter (see below) |
| Plugin name | Suffix after verdaccio- β e.g. my-plugin produces verdaccio-my-plugin |
| Description | Short description added to package.json |
| GitHub username / org | Populates the repository field in package.json |
| Author name & email | Stored locally and reused in future runs |
| Keywords | Comma-separated; verdaccio is always appended automatically |
| Type | Implements | Use when you want to⦠|
|---|---|---|
auth |
authenticate, allow_access, allow_publish |
Control who can log in and access packages |
storage |
Custom storage backend | Store packages somewhere other than the local filesystem |
middleware |
Express middleware | Add custom HTTP routes or request/response processing |
filter |
filter_metadata |
Transform or filter package metadata before it reaches the client |
Auth
auth:
verdaccio-my-plugin:
# your custom configStorage
store:
verdaccio-my-plugin:
# your custom configMiddleware
middlewares:
verdaccio-my-plugin:
enabled: trueFilter
filters:
verdaccio-my-plugin:
# your custom configverdaccio-<name>/
βββ src/
β βββ index.ts # Re-exports the plugin class
β βββ *-plugin.ts # Main plugin implementation
βββ types/
β βββ index.d.ts # Custom configuration types
βββ .editorconfig
βββ .gitignore
βββ .npmignore
βββ .nvmrc
βββ package.json
βββ README.md
βββ tsconfig.json
After scaffolding, build the plugin and link it for local testing:
cd verdaccio-<name>
npm install
npm run build
npm linkThen add the plugin name to your verdaccio.yaml and run Verdaccio.
# Install dependencies
pnpm install
# Build the generator
pnpm build
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverageSee the Verdaccio contributing guide for broader contribution guidelines.
MIT Β© Juan Picado <@jotadeveloper>