private packages in yarn
How to teach yarn to use .npmrc
If you want to use private packages in npm you can use private registries. You usually set private registries up with a .npmrc. For example, in order to use remix.run you have to add the following to your .npmrc
//npm.remix.run/:_authToken=my-token
@remix-run:registry=https://npm.remix.run yarn
Apparently yarn does not recognize the @remix-run scope and needs an additional hint in a .yarnrc:
"@remix-run:registry" "https://npm.remix.run" Though you still need the .npmrc for the authentication.
yarn v2
For yarn v2 the story looks a bit simpler and the syntax is more approachable. You have to add the following to your .yarnrc.yml
npmScopes:
remix-run:
npmAlwaysAuth: true
npmAuthToken: my-token
npmRegistryServer: https://npm.remix.run token from environment variables
If you want to configure your token via environment variables you can do so by replacing all the instances of my-token with e.g. ${REMIX_REGISTRY_TOKEN}. Then your token will be read from the environment variable REMIX_REGISTRY_TOKEN.
.npmrc
//npm.remix.run/:_authToken=${REMIX_REGISTRY_TOKEN}
@remix-run:registry=https://npm.remix.run .yarnrc.yml:
npmScopes:
remix-run:
npmAlwaysAuth: true
npmAuthToken: ${REMIX_REGISTRY_TOKEN}
npmRegistryServer: https://npm.remix.run