При использовании пряжи, файл 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}