#security #yarnpkg #yarnpkg-v2
Вопрос:
В этой статье предлагается добавить конфигурацию .npmrc
в ваш проект, чтобы связать область с частным реестром, чтобы снизить риск атаки с заменой npm (когда кто-то может намеренно опубликовать вредоносный общедоступный пакет с тем же именем).
Как мы можем достичь аналогичного эффекта в проекте Yarn 2? Я попытался добавить .yarnrc.yml
файл в корневой каталог своего проекта:
npmScopes:
someScope:
npmRegistryServer: https://npm.pkg.github.com
У нас также есть домашний каталог ~/.yarnrc.yml
для каждого разработчика с аналогичной конфигурацией, но дополнительно с соответствующим npmAuthToken
для аутентификации.
Однако, когда я выполняю a yarn install
, я получаю Invalid authentication (as an anonymous user)
ошибку для пакетов в этой области. Предположительно , конкретный проект .yarnrc.yml
переопределяет настройки для каждого пользователя ~/.yarnrc.yml
, поэтому информация об аутентификации больше не присутствует?
Смягчение, которого я добиваюсь , заключается в том, что если разработчик забудет запустить yarn npm login
, он не будет проверять общедоступный реестр на наличие пакетов в определенной области. Есть ли способ сделать это в Yarn 2?
Ответ №1:
У меня просто была та же проблема. Проблема в том, что вам необходимо определить аутентификацию для каждого раздела (как указано в комментарии к этой проблеме). Это также относится к npmRegistries
.
npmScopes:
someScope:
npmRegistryServer: <your-registry-server>
npmAuthToken: <your-token>
npmAlwaysAuth: true
Имейте в виду, что дублированные конфигурации в иерархических определениях .yarnrc.yml
не будут объединены, а будут заменены (см. Этот комментарий). Таким образом, если npmScopes
он уже объявлен в домашнем каталоге, он перезаписывается объявлением в проекте.