Installing and Testing Verdaccio

Updated Version

There’s an updated version of this article here:

Scenario

We want to use Verdaccio for our local NPM Packages.

Approach

npm install -g verdaccio

Execute the CLI command:

verdaccio warn --- config file  - /home/.config/verdaccio/config.yaml warn --- http address - http://localhost:4873/ - verdaccio/3.0.0

Set Verdaccio as the local registry:

npm set registry http://localhost:4873/

Or use the http option when installing:

npm install --registry http://localhost:4873

Start Verdaccio by running:

verdaccio

You should see the following printed on the console:

 warn --- config file  - /home/ole/.config/verdaccio/config.yaml
warn --- Verdaccio started
warn --- Plugin successfully loaded: verdaccio-htpasswd
warn --- Plugin successfully loaded: verdaccio-audit
warn --- http address - http://localhost:4873/ - verdaccio/4.4.0

Add yourself as a user:

npm adduser --registry http://localhost:4873

Testing

Create an untyped NPM module:

npm publish

Visit http://localhost:4873

You should see your package published.

Now install the package in a local project:

mkdir testinstall
cd testinstall
npm init -y
npm install -S untyped-npm-module

You should see untyped-npm-module installed and the install should be logged on the Verdaccio console:

http <-- 200, user: ole(127.0.0.1), req: 'GET /untyped-npm-module/-/untyped-npm-module-1.1.1.tgz', bytes: 0/338
http <-- 200, user: ole(127.0.0.1), req: 'GET /untyped-npm-module/-/untyped-npm-module-1.1.1.tgz', bytes: 0/338

Bonus

If you want to make sure that you only publish your package to Verdaccio include the following in the package.json file:

"publishConfig":{
"access": "restricted",
"registry":"http://localhost:4873"
}

Note that in order for this to work the package has to be scoped . For me that means that I add the @fireflysemantics/scope . So for example Slice is has the name:

@fireflysemantics/slice

Switching Back to NPM

If you need to publish a package to NPM you must set the registry to NPM again. Run:

npm config set registry https://registry.npmjs.org/

Resetting the Database

Stop verdaccio with ctrl+c .

Go to your settings. In my case they are located in:

~/.config/verdaccio/config.yaml

Look for the storage location. My configuration looks like this:

# path to a directory with all packages
storage: /home/ole/.local/share/verdaccio/storage

Remove all the packages in the storage directory:

rm -fr ~/.local/share/verdaccio/storage/

Start verdaccio:

verdaccio

Visit:

http://localhost:4873/

It should tell you that no packages are installed.

Login again in order to be able to publish to verdaccio:

npm adduser --registry http://localhost:4873

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ole Ersoy

Ole Ersoy

Founder of Firefly Semantics Corporation