Use packages from

Azure DevOps Services | TFS 2018 | TFS 2017

The npm client is designed to work with a single primary registry (what Azure Artifacts calls a feed). It also supports secondary scoped registries. Scoped registries can only be used to install packages whose names begin with the scope prefix, so their usage is more restrictive. If you want to use both private packages you've created and public packages from, we recommend using upstream sources.

The upstream source allows you to merge the contents of into your feed such that the npm client can install packages from both locations. Enabling upstream sources also automatically enables saving of packages you use from the upstream source. This is the recommended way to use Azure Artifacts with npm. Upstreams give you the most flexibility to use a combination of scoped- and non-scoped packages in your feed, as well as scoped- and non-scoped packages from

To learn more about the concept of upstream sources, please see the concepts page.

Enable as an upstream

To use as an upstream source, either create a new feed or edit an existing feed.

On a new feed

  1. Create a new feed. Ensure you leave the "Use packages from public sources through this feed" radio button selected.

On an existing feed

  1. Edit your feed. Select the gear icon in the top right of the page to open feed settings.
  2. Select the Upstream sources pivot.
  3. Select Add upstream source in the CommandBar.
  4. Select Select a feed URL and select ( If you like, customize the upstream name.
  5. Select Add.

Filter to saved packages

You can see the packages you have saved in your feed by selecting the appropriate Source filter.


Legacy feeds do not guarantee that every package npm installed via a feed with upstreams enabled will be saved. Check if your feed is a legacy feed and consider upgrading it, if needed.

On Fabrikam, the Source drop-down list is highlighted, and npmjs is selected. The packages for npmjs are listed.

Viewing your cached packages

Filtering is on the npmjs source.


If you prefer to use scopes, which limit your private packages to those with the @<scope> prefix e.g. @fabrikam/core but enable you to consume public packages directly from, see Scopes.