Skip to content

npm Package Registry

Publish npm packages for your user or organization.

Requirements

To work with the npm package registry, you need Node.js coupled with a package manager such as Yarn or npm itself.

The registry supports scoped and unscoped packages.

The following examples use the npm tool with the scope @test.

Configuring the package registry

To register the package registry you need to configure a new package source.

Terminal window
npm config set {scope}:registry https://forgejo.example.com/api/packages/{owner}/npm/
npm config set -- '//forgejo.example.com/api/packages/{owner}/npm/:_authToken' "{token}"

NOTE: in the example below (npm config set -- '//forgejo...) the leading scheme, https:, is intentionally missing. It must not be included. The following is incorrect: npm config set -- 'https://forgejo...

ParameterDescription
scopeThe scope of the packages.
ownerThe owner of the package.
tokenYour personal access token.

For example:

Terminal window
npm config set @test:registry https://forgejo.example.com/api/packages/testuser/npm/
npm config set -- '//forgejo.example.com/api/packages/testuser/npm/:_authToken' "personal_access_token"

or without scope:

Terminal window
npm config set registry https://forgejo.example.com/api/packages/testuser/npm/
npm config set -- '//forgejo.example.com/api/packages/testuser/npm/:_authToken' "personal_access_token"

Publish a package

Publish a package by running the following command in your project:

Terminal window
npm publish

You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first.

Unpublish a package

Delete a package by running the following command:

Terminal window
npm unpublish {package_name}[@{package_version}]
ParameterDescription
package_nameThe package name.
package_versionThe package version.

For example:

Terminal window
npm unpublish @test/test_package
npm unpublish @test/test_package@1.0.0

Install a package

To install a package from the package registry, execute the following command:

Terminal window
npm install {package_name}
ParameterDescription
package_nameThe package name.

For example:

Terminal window
npm install @test/test_package

Tag a package

The registry supports version tags which can be managed by npm dist-tag:

Terminal window
npm dist-tag add {package_name}@{version} {tag}
ParameterDescription
package_nameThe package name.
versionThe version of the package.
tagThe tag name.

For example:

Terminal window
npm dist-tag add test_package@1.0.2 release

The tag name must not be a valid version. All tag names which are parsable as a version are rejected.

Search packages

The registry supports searching but does not support special search qualifiers like author:forgejo.

Supported commands

npm install
npm ci
npm publish
npm unpublish
npm dist-tag
npm view
npm search