При использовании пряжи, файл yarn.lock генерируется с помощью частного токена из bash

Я использую Gem Fury для некоторых наших частных пакетов. Я установил реестр пряжи для использования своего прокси для общедоступных и наших модулей частных узлов:

yarn config set registry "https://npm-proxy.fury.io/$GEMFURY_TOKEN/username"

GEMFURY_TOKEN установлен в .bash. yarn config get registry производит:

https://npm-proxy.fury.io/$(GEMFURY_TOKEN)/username

Когда мы запускаем yarn, файл yarn.lock будет генерировать это:

[email protected]:
  version "0.1.0"
  resolved "https://npm.fury.io/username/private-module/-/0.1.0.tgz?auth=<GEMFURY TOKEN>"
  dependencies:
    ember-cli-babel "^5.1.6"

[email protected]:
  version "0.1.4"
  resolved "https://npm.fury.io/username/private-module-2/-/0.1.4.tgz?auth=<GEMFURY TOKEN>"
  dependencies:
    ember-cli-babel "^5.1.6"
    ember-inflector "^1.9.6"

Мне не нужны частные токены в репозитории git. Есть ли способ, которым я могу исключить токен из добавления в файл yarn.lock при генерации?

Ответы

Ответ 1

Попробуйте настроить npm как описано в документации Gem Fury. Критические части устанавливают always-auth - true и используют npm login

Если это не поможет, вы можете использовать Git pre-commit hooks, который удалит учетные данные из yarn.lock когда изменения будут переданы в репозиторий Git.

Ответ 2

Мы решили эту проблему недавно, но документация Gemfury на самом деле не делает ее очевидной. Если вам нужно вытащить или вставить свою сборку CI, то я не думаю, что вы должны использовать npm login поскольку это изменит ваш домашний .npmrc, что не очень полезно. Мы обнаружили, что все, что вам нужно сделать, это изменить свой проект .npmrc чтобы использовать общую учетную запись организации. Таким образом, вы можете контролировать версию своего проекта .npmrc чтобы ваши разработчики и ваш CI-сервер могли читать с одного и того же URL-адреса реестра, сохраняя свой файл блокировки без маркеров:

@MY_ORG:registry=https://npm-proxy.fury.io/MY_ORG/
always-auth=true
//npm-proxy.fury.io/MY_ORG/:_authToken=${GEMFURY_TOKEN}