2

我们将作用域 js 包发布到私有注册表(由我们使用 Verdaccio 管理)。

这意味着在我们的生产环境中,我们需要对我们的私有注册表进行身份验证才能使用yarn install. 最简单的方法是什么?

4

2 回答 2

1

如果您不能或不想使用.env文件,但您已经拥有.yarnrc.yml带有注册表 url 的文件,如下所示:

npmScopes:
  yourScopeName:
    npmRegistryServer: 'https://...'

然后您可以使用yarn config set命令添加npmAuthToken带有令牌值的键,例如:

// $REGISTRY_TOKEN is an ARG variable you pass to Docker
ARG REGISTRY_TOKEN

RUN yarn config set 'npmScopes.yourScopeName.npmAuthToken' "$REGISTRY_TOKEN"
于 2022-02-02T15:12:51.197 回答
0

更漂亮的解决方案(IMO)

切换到 yarn berry (yarn v2)

迁移指南

在 .yarnrc.yml 中使用环境变量:

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"

您还可以将环境变量放在.env文件中并将其添加到.gitignore

测试

  1. 添加范围包

    docker-compose run --rm server yarn add @customScope/test-package

  2. 安装

    docker-compose run --rm server yarn install

于 2021-05-11T13:25:43.857 回答