verdaccio-badges
A verdaccio plugin to provide a version badge generator endpoint
Quick start
In your verdaccio dockerfile you need to npm install
this package and update the ownership permissions on the ~/.npm
folder. e.g
RUN npm install verdaccio-badges@x.x.xRUN chown -R $VERDACCIO_USER_UID:root ~/.npm
If this is the first/only plugin you are loading check the example Dockerfile to see how to install the dependencies requireds to npm install
.
In your config.yaml
file add the following configuration to middlewares
If using Verdaccio Dockerfile:
middlewares: badges: enabled: true
Non-Dockerfile setup:
middlewares: badges: enabled: true registry: 'http://localhost:4873' # optional - see below # by default the registry url will be generated from environment varialbes present in the verdaccio Dockerfile # if the variables are not present it will fallback to registry.npmjs.org and so will fail to generate badges for your private packages # to fix this you could set it manually to app localhost as demonstrated above
Now once you restart your Verdaccio instance visit:
https://your.verdaccio.url/-/badge/<NAME>.svghttps://your.verdaccio.url/-/badge/<SCOPE>/<NAME>.svg e.ghttps://0.0.0.0:4873/-/badge/myorg/my-package.svghttps://internal.npm.com/-/badge/my-package.svg
Configuration
middlewares: badges: enabled: true debug: true # optional - default false registry: 'https://npm.example.com' # optional - default https://0.0.0.0:4873 endpoint: '/foo/' # optional - default '/-/badge/' format: # optional - gh-badges formatting option label: 'foo' # optional - default 'npm' color: 'red' # optional - default 'blue' colorLabel: 'black' # optional - default null template: 'social' # optional - default 'flat'
registry
By default the lookup is done against the running verdaccio instance (i.e itself). This url is generated from available environment variables as per the Verdaccio startup cmd.
<VERDACCIO_PROTOCOL>://0.0.0.0:<VERDACCIO_PORT>
Development
See the verdaccio contributing guide for instructions setting up your development environment. Once you have completed that, use the following npm tasks.
-
npm run build
Build a distributable archive
-
npm run test
Run unit test
-
npm run lint
Run project linting
-
npm run dev
Run a simple express server that loads the middleware for local development (http://localhost:300/-/badge/) In this mode it points directly to
https://registry.npmjs.org
by settingconfig.registry
.
For more information about any of these commands run npm run ${task} -- --help
.