generator-verdaccio-plugin
v7.1.0
Published
plugin generator for verdaccio
Readme
generator-verdaccio-plugin
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.
Requirements
Installation
npm install -g yo generator-verdaccio-pluginQuick Start
yo verdaccio-pluginThe generator walks you through a short set of prompts and creates a verdaccio-<name>/ directory with everything you need.
Interactive Prompts
| 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 |
Plugin Types
| 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 |
Registering your plugin in verdaccio.yaml
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 configGenerated Project Structure
verdaccio-<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.jsonAfter 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.
Contributing
# 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.
