Search code examples
node.jsnexusyarnpkg

How to specify local registry in yarn?


I have a local nexus server, I'd like yarn to look through it before going online, basically prefer-offline

yarn install \
  --prefer-offline \
  --cache-folder C:\folder\yarn-cache \
  --preferred-cache-folder C:\folder\yarn-cache \
  --non-interactive \
  --no-lockfile \
  --registry http://server/repository/npm-group

Yarn fails to find a dependency offline then fails to go online. I don't know if that can be fixed.


Solution

    • Create an npm (hosted) repository to use as your private registry. I believe you have already done this.
    • Create an npm (proxy) repository pointing to your external repository of choice (https://registry.yarnpkg.com or https://registry.npmjs.org/).
    • Create an npm (group) with your private registry on first position and the proxy registry on second position.
    • Point yarn to your group repository: yarn config set registry http://nexus.local/repository/npm-group/. If required by your Nexus configuration, authenticate yarn: yarn login.

    Also be wary of yarn using any npm config you might have over it's own: https://github.com/yarnpkg/yarn/issues/4862

    Update for Yarn v2+:

    Yarn v2+ uses a different configuration key for updating the NPM registry, called npmRegistryServer (see their Migration page for details):

    yarn config set npmRegistryServer http://nexus.local/repository/npm-group/