npm

Host private npm packages alongside your NuGet packages in the same organisation. Feedz supports scoped packages, standard npm authentication, and the full npm CLI workflow.

Repository URL

Your npm repository URL follows this format. Note that the trailing slash is required:

https://f.feedz.io/{organisation}/{repository}/npm/

Scopes

npm supports multiple registries using scopes — string identifiers that group related packages into a namespace. You configure one scope per Feedz repository. npm will route packages in that scope to Feedz and fall back to the public npm registry for everything else.

To create a package in a specific scope, prefix its name in package.json with @<scope>/. For example, for scope my-company and package my-package, the name would be @my-company/my-package.

Authenticating

Use the adduser command to authenticate and associate your scope with the repository. Use any username and email when prompted, and enter a personal access token as the password. The --always-auth flag is required for private repositories so credentials are sent on every request:

npm adduser \
  --registry https://f.feedz.io/my-org/my-repo/npm/ \
  --scope my-company \
  --always-auth
Authentication is not required for public repositories. For private repositories, omitting --always-auth will cause search and install to fail with 401 errors.

Publishing packages

Once authenticated, publish using the scope you configured:

npm publish my-package-1.0.0.tgz --scope my-company

The maximum allowed package size is 100 MB.

Installing packages

Install packages by specifying the full scoped name and version:

npm install @my-company/my-package@1.0.0

Searching packages

npm search --scope my-company my-pack