We're publishing scoped js packages to a private registry (managed by us using Verdaccio).
It means that in our production environment, we need to authenticate to our private registry to use yarn install. What's the easiest way to do it ?
Migration guide
yarnPath: ".yarn/releases/yarn-berry.cjs"
nodeLinker: node-modules
npmScopes:
customScope:
npmRegistryServer: ${NPM_REGISTRY}
npmAlwaysAuth: true
npmAuthToken: ${NPM_TOKEN}
#docker-compose.yml
version: '3.7'
services:
server:
image: node:14
environment:
NPM_REGISTRY=https://private-registry
NPM_TOKEN=PUT_YOUR_TOKEN_HERE
ports:
- "3000:3000"
volumes:
- .:/var/app
command: "yarn run dev"
You can also put env vars in a .env file and add it to .gitignore
Add a scoped package
docker-compose run --rm server yarn add @customScope/test-package
Install
docker-compose run --rm server yarn install
If you can't or don't want to use .env file, but you already have .yarnrc.yml file with your registry url like that:
npmScopes:
yourScopeName:
npmRegistryServer: 'https://...'
then you can use yarn config set command to add npmAuthToken key with your token value, for example:
// $REGISTRY_TOKEN is an ARG variable you pass to Docker
ARG REGISTRY_TOKEN
RUN yarn config set 'npmScopes.yourScopeName.npmAuthToken' "$REGISTRY_TOKEN"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With