Use npm scopes


Support for npm packages is available with Package Management in VSTS and TFS 2017 Update 1 and newer.

Scopes are built into npm and are a way of grouping packages together. In VSTS and in, you can publish and use both scoped and unscoped packages.

Scopes are also the npm client's only native affordance to use multiple registries/feeds. They allow you to separate your private packages from packages by prefixing your packages with a @scope: e.g. @fabrikam/fiber-core and configuring your .npmrc file to only use a Package Management feed for that @scope.

Set up

To use a Package Management feed with a scope, follow the instructions below, but append your scope to both lines in the project .npmrc file.

  1. Navigate to your feed. If you haven't created a feed, create one now.

  2. Select Connect to feed.

  3. Select npm.

  4. Follow the steps on screen.

    Connect to feed button in the upper-right of the page


    npm configuration in the Connect to feed dialog


    npm configuration in the Connect to feed dialog

Then, replace:

  • registry=<your feed URL> with
  • @fabrikam:registry=<your feed URL>

Upstreams or scopes?

Scopes add an additional restriction when naming your packages: each package name must start with @<scope>. If you're ok with this limitation, and don't intend to ever publish your private packages to, scopes are an alternative to upstream sources.

If you do intend to publish private packages to, we recommend not using scopes unless you intend to publish your packages to with the scope intact; if you remove the scope when transitioning the package from Package Management to, you'll need to update any package.json references accordingly.