Install private packages with Yarn   βeta

Once you have signed up for a Gemfury account and uploaded some npm packages, you can install them with Yarn.

Setting up your global configuration

To start using your private registry with Yarn, you will need to update your npm config and authenticate using your personal Gemfury credentials:

npm config set registry https://npm.fury.io/USERNAME/
npm config set always-auth true
npm login

This will update your personal ~/.npmrc file with the following:

always-auth=true
registry=https://npm.fury.io/USERNAME/
//npm.fury.io/USERNAME/:_authToken=SECRET-TOKEN

Now you can specify Gemfury packages in your project’s package.json dependencies and run yarn install

Using Gemfury along with the public registry

The npm.fury.io repository only enables access to your Gemfury packages, however, we also offer a blended-index endpoint to allow you to install packages from both your Gemfury account and from the public index:

https://npm-proxy.fury.io/USERNAME/

You can activate the blended repo by replacing npm.fury.io with npm-proxy.fury.io in either the commands or directly in .npmrc config as described above:

npm config set registry https://npm-proxy.fury.io/USERNAME/
npm config set always-auth true
npm login

When you run Yarn commands, the blended-index proxy will first look for a named package in your Gemfury account, and if it is not found, it will fall back on the public package.

Per-project configuration

If your project relies on private packages, we recommend committing a project-specific configuration to ensure consistent installs. Just commit a .yarnrc file to the root directory of your project:

# PROJECT_DIR/.yarnrc
registry "https://npm.fury.io/USERNAME/"

Each collaborator can subsequently authenticate using their Personal credentials before running yarn commands in the project directory:

npm config set always-auth true
npm login --registry=https://npm.fury.io/USERNAME/

This method can be used with either npm.fury.io or npm-proxy.fury.io endpoint.

Working with scoped packages

You can also set up your project to use scoped packages by directing a scope name to your Gemfury account. Adding this line to your project’s .yarnrc file will direct all @myscope packages to be installed from Gemfury:

# PROJECT_DIR/.yarnrc
"@myscope:registry" "https://npm.fury.io/USERNAME/"

Although the scope name needs to match the scope of your named dependencies in package.json, it does not necessarily have to match your Gemfury username. Thus you can have multiple scopes per account.

You can subsequently authenticate using your Personal credentials before running yarn commands in the project directory. Be sure to include the trailing slash or the command will fail to authenticate:

npm login --registry="https://npm.fury.io/USERNAME/"

This command will insert the following line into your ~/.npmrc:

//npm.fury.io/USERNAME/:_authToken=SECRET-TOKEN