Вы хотите запросить функцию или сообщить об ошибке ?
ОШИБКА
Каково текущее поведение?
Пряжа не поддерживает .npmrc
Если текущее поведение является ошибкой, предоставьте шаги для воспроизведения.
Нам требуется аутентификация для одного из наших репозиториев, и мы делали это, задавая аутентификацию в .npmrc. Это сработало до 0.28.4, но сломалось в 1.0.0
Какое поведение ожидается?
Соблюдение настроек аутентификации в .npmrc
Пожалуйста, укажите ваш node.js, yarn и версию операционной системы.
Это происходит после обновления пряжи до 1.0.0 / 1.0.1 (пробовали обе версии). Независимо от ОС и версии nodejs.
Это должно быть исправлено в версии 1.0.2, которая была выпущена вчера. Можете ли вы попробовать?
@BYK Я испытываю те же проблемы, что и выше и упомянутые в конце # 4157. Я попытался запустить 1.0.2
и не смог выполнить 404
. Запуск на 0.27.5
работает должным образом.
Не могли бы вы вставить сюда свой файл npmrc, чтобы мы могли попытаться воспроизвести (очевидно, отредактируйте секреты или другую личную информацию)
@KidkArolis , пытаясь сделать мой рабочий устранило проблему? 🙃
Шаги, которые я предпринял:
yarn.lock
и любые файлы yarn-error.log
node_modules/
brew link yarn
и yarn --version
чтобы убедиться, что я был на уровне 1.0.2
yarn
Кажется, это сработало. Я собираюсь списать это на ошибку пользователя со своей стороны и со стороны моей команды.
@beardedtim Как насчет того, чтобы сейчас вы взорвать node_modules
но оставить yarn.lock
а затем запустить yarn install
? Тогда все работает? Отчасти это отслеживает # 4157, но может быть связано с более серьезной проблемой?
У меня возникла эта проблема (404 в репо с закрытой областью действия, какой бы реестр я ни использовал) для версий пряжи 1.0.1 и 1.0.2. Версия 0.27.5 заработала после удаления некоторых артефактов.
Я пробовал все обходные пути, описанные в https://github.com/yarnpkg/yarn/issues/4157. С удовольствием публикую логи, если это поможет.
@stieg Я попробую это позже сегодня, когда у меня будет свободное время после обеда, и
Кто-нибудь нашел решение этого?
FWIW: Я пробовал:
node_modules
~/.yarn
curl -o- -L https://yarnpkg.com/install.sh | bash
для переустановки пряжи 1.0.2yarn install
- _нет ошибок_, все установил безупречно.Мои ~/.yarnrc
:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
registry "https://registry.npmjs.org"
email [email protected]
lastUpdateCheck 1505977814820
username some-user
````
And my `~/.npmrc`:
//registry.npmjs.org/:_authToken=a-valid-uuid
The `yarn.lock` references look like this in my particular case:
решено " https://registry.npmjs.org/@acme/some -module / - / some-module-0.1.1.tgz # valid-git-sha"
`` ''
Интересно. Поместив реестр в свой файл .yarnrc
, я смог установить свои пакеты. Однако я удалил его, чтобы проверить, не виноват ли он, и он все еще был успешным (я удалил свой кеш, поэтому Yarn пришлось его загрузить, и ему удалось это сделать правильно).
Я попробовал новую установку (на этот раз Debian, другой был macOS), и эти настройки в ~/.npmrc
и ~/.yarnrc
работали одинаково хорошо. (Примечание: я не пробовал npm login
или yarn login
.)
Закрытие, поскольку люди, сообщающие об этом, были устранены. Повторите попытку с конкретными шагами воспроизведения, если это не решено для вас,
@BYK У меня была такая же проблема.
Я использовал чистую установку последней версии пряжи.
И он начинает работать после того, как я добавил registry "https://registry.npmjs.org"
в ~/.yarnrc
.
Я считаю, что это ошибка, и ее нужно решать автоматически, а не вручную, как мы.
@BYK Может быть https://registry.npmjs.org .
Однако я думаю, что все еще существует проблема с получением частных пакетов из реестра https://registry.yarnpkg.com , и это реестр по умолчанию, используемый yarn (это все еще просто обратный прокси ? Возможно, он не соблюдает заголовки auth? ).
.npmrc
и .yarnrc
чтобы yarn использовала конфигурацию по умолчанию.npm login
или yarn login
чтобы заполнить токен аутентификации.0.27.5
, попробуйте установить этот пакет.Пакет успешно установлен.
❤ <strong i="26">@up</strong> ➜ REPO git:(master) ★ yarn add @SCOPE/PACKAGE
yarn add v1.1.0
info No lockfile found.
[1/5] Validating package.json...
[2/5] Resolving packages...
error An unexpected error occurred: "https://registry.npmjs.org/@SCOPE%2fPACKAGE: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/home/katy/dev/REPO/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Если сопровождающие проекта сочтут инструкции
Я согласен с @kmoe , основная проблема не исправлена даже в последних версиях yarn. Пожалуйста, повторно откройте проблему. Да, у нас есть обходной путь, но в этом случае обходной путь! = Решение.
FWIW, это все еще проблема в 1.1.0. Я только что это проверил (вернулся сюда для обходного пути, а именно registry "https://registry.npmjs.org"
добавляется к ~/.yarnrc
)
У меня эта проблема в пряжи 1.3.2, и прямо сейчас она ломает наши сборки. Он отлично работал с пряжей 0,27,5.
Нам нужен токен авторизации из файла .npmrc
для установки пакетов из нашего частного реестра Artifactory.
Этапы воспроизведения:
.npmrc
с информацией для аутентификации, например:registry=https://artifactory.mycompany.com/artifactory/api/npm/npm-virtual
_auth = myAuthTokenHere
always-auth = true
email = [email protected]
yarn install
error An unexpected error occurred: "https://artifactory.mycompany.com/api/npm/npm-virtual/@angular/compiler/-/compiler-4.3.1.tgz: Request failed \"401 Unauthorized\"".
Связанный: # 4672
@stewx У меня такая же проблема на 1.3.2. Вы нашли решение или способ обойти это?
@jamesone Нет, я понизил
@stewx @jamesone
Добавьте registry "https://registry.npmjs.org"
в свой .yarnrc и переустановите частные пакеты
Он скажет yarn работать напрямую с реестром npmjs и решит проблему.
Кажется неправильным 0.27.5 только для того, чтобы обойти эту единственную проблему, но похоже, что многие делают именно это _или_ перенаправляют registry
config (хотя @stewx сообщает, что не решает проблему для самостоятельного размещения частные реестры).
Если у постоянных участников проекта нет времени исправить это в краткосрочной перспективе, захочет ли кто-нибудь предложить местоположение (а) кодовой базы, где исправление с наибольшей вероятностью будет успешным, в надежде, что будет открыт PR сообщества? 🤔
/ cc @kittens @bestander @BYK @arcanis @ rally25rs @kaylieEB
@Bnaya Когда вы говорите переустановить, вы имеете в виду удалить node_modules
в своем проекте или очистить кеш пряжи?
пряжа удалить ваш частный пакет; пряжа добавить свой частный пакет
И в файле блокировки вы увидите https://registry.npmjs.org/***
url, а не https://registry.yarnpkg ***
Я бы предложил добавить .yarnrc рядом с вашим package.json
Я фактически заставил это работать, поместив registry "https://registry.npmjs.org"
в ~/.yarnrc
, т.е. нет необходимости в локальном пакете .yarnrc
.
Шаги по воспроизведению ошибки для меня:
~/.yarnrc
Если я изменю ~/.yarnrc
как указано выше, шаги не вызовут ошибки.
Если я посмотрю на некоторые из моих проектов, где есть ошибки, я вижу, что yarn.lock
содержит https://registry.yarnpkg.com/@myscope/mypackage/
. Чтобы эти проекты заработали, мне нужно удалить yarn.lock
и заново создать его после обновления до ./.yarnrc
.
Это, кажется, объясняет, почему у некоторых людей все еще возникают ошибки, даже когда они пробуют что-то, что работает для других.
registry "https://registry.npmjs.org"
в ~ / .yarnrcyarn.lock
для неудачных проектов@TheLudd Восстановление yarn.lock с нуля
Вместо этого разработчики проекта могут захотеть рассмотреть возможность поиска / замены с yarnpkg.com
на npmjs.org
, сохранив текущее состояние файла блокировки.
@awkaiser Что ж, пока ваши тесты проходят, вы можете зафиксировать его, и все другие соавторы будут иметь ту же среду, что и вы. Так что не совсем побеждать его цель ИМО.
Но да, вы также можете найти замену.
Но есть правило, что вы не должны изменять yarn.lock вручную;)
Если бы всегда было безопасно извлекать самые свежие пакеты, удовлетворяющие нашим требованиям package.json , нам вообще не понадобились бы файлы блокировки. 😜
Обычно да, мы не должны изменять yarn.lock вручную, но это, поскольку ошибка, поддерживает исключение из этого правила. Обновление ссылки на расположение реестра с помощью поиска и замены должно быть простым и безопасным. 🍻
Мне не нужно было восстанавливать весь мой файл блокировки.
Просто чтобы удалить и установить частные пакеты
@awkaiser или кто-либо еще в теме - один из способов помочь - создать воспроизводимый пример. Например, используйте это репо https://github.com/KidkArolis/yarn-scopes-issue. Если вы можете создать репо, в котором запуск yarn
завершается неудачно (конкретный ответ реестра, конкретная конфигурация пряжи, конкретный package.json и т. Д.) - тогда я определенно мог бы взглянуть на решение проблемы.
В общем-то:
.yarnrc
файл.yarnrc
чтобы содержать registry "https://registry.npmjs.org"
registry.npmjs.org
должны работатьcustom.registry.org
должны работать@KidkArolis неудачи случайны. но они там есть.
Как я писал по другой связанной проблеме: это или проблема с реестром пряжи (возможно, сбои кеширования, плохой заголовок Vary на прокси-сервере, что угодно) или сложный крайний случай внутри пряжи, который происходит только с реестром пряжи.
Неужели того, что @kmoe написал 25 сентября 2017 г., недостаточно? 🤔
Это побудило к повторному открытию этого выпуска, предполагающему воспроизведение авторами.
@KidkArolis Я не уверен, как я могу создать воспроизводимый пример в репозитории, поскольку это касается частных модулей и, таким образом, зависит от того, кто запускает yarn, верно? Но мои шаги по воспроизведению ошибки здесь https://github.com/yarnpkg/yarn/issues/4451#issuecomment -355248563, и того, что написал @kmoe, также достаточно.
Когда я пытаюсь установить частный пакет без изменения .yarnrc
я получаю ошибку
Произошла непредвиденная ошибка: https://registry.yarnpkg.com
Это означает, что он просматривает реестр пряжи, а не npm. Разве это не ошибка, вызывающая эту ошибку?
Хорошо, спасибо, что обновили эти шаги воспроизведения. Я попробую и посмотрю.
По какой-то причине добавление этого явного местоположения в .npmrc, где можно найти мои частные пакеты, привело к тому, что ошибка 404 перестала происходить во всех репозиториях, в которых это вызывало проблему.
@npm-username:registry=https://registry.yarnpkg.com/
Есть ли у кого-нибудь частный пакет npm, в который они могли бы меня добавить? Имя пользователя: kidkarolis
.
Я изо всех сил пытаюсь получить платную учетную запись, их система биллинга / учетной записи, похоже, не работает для меня в банкомате (я получаю 402 Payment Required
хотя они взимали с меня: - "). Итак, пока я жду npm's support, если кто-то добавит меня в частный пакет (если это вообще возможно), это ускорит процесс.
Хорошо, я думаю, это было просто ... постоянство в конечном итоге, моя личная учетная запись npm теперь работает.
Однако я пока не могу воспроизвести проблему :(
Я выполнил шаги, предоставленные @kmoe :
rm ~/.yarnrc && rm ~/.npmrc
yarn cache clean && npm cache clean --force
npm login
yarn add @scope/pkg
Устанавливается нормально (и не работает, если я не npm login
). Другими словами - у меня работает как положено.
И судя по yarn.lock, моя установка проходит через https://registry.yarnpkg.com
и, похоже, использует аутентификацию, как и ожидалось. Может быть, проблема на сервере была раньше, но теперь она решена?
Ок, думаю, что-то воспроизвел.
Если я добавлю <strong i="6">@qubit</strong>:registry=https://registry.npmjs.org/
к .npmrc
- установка перестанет работать.
Я думаю, что эта строка добавляется, если вы входите в систему с помощью npm login --scope=@qubit
и не добавляется, если вы входите только с npm login
. Посмотрим, как это исправить дальше.
@KidkArol - другой распространенный способ настройки этой конфигурации:
npm config set <strong i="8">@qubit</strong>:registry https://registry.npmjs.org
Открыл PR - # 5162 отзыв (или даже QA) приветствую.
@KidkArolis Спасибо за пиар. Но я думаю, что проблема заключается не только в случае «--scope», но и в более общем случае, когда частное репо также отражает публичные пакеты с auth.
Кстати, @ bytheway875 , ваш трюк с использованием https://registry.yarnpkg.com/
в качестве реестра у меня сработал.
Моя ситуация:
yarn
из организации (@ org-name) на npmjs.com, используя authToken
в локальном файле .npmrc
во время сборки CI (GitLab), так что не авторизовался в npm
.npm
npm login
и yarn
просто работать ИЛИ я могу выйти из npm, но вручную создать файл local / HOME dir .npmrc
с одна строка: //registry.npmjs.org/:_authToken=token
и yarn
просто работают (этот второй метод _might_ работает из-за локального кеша, не пытался его стереть).yarnrc
трюк сверху не сработал_Единственный способ заставить это работать - это создать локальный файл .npmrc
перед запуском yarn install
в CI: _
@org-name:registry=https://registry.yarnpkg.com/
always-auth=true
_authToken=token
У меня была аналогичная проблема с файлом .npmrc
. Все, что мне нужно было сделать, это установить кодировку файла .npmrc
в ANSI (в Windows вы можете использовать notepad.exe> Сохранить как ...).
Вы можете проверить, как yarn видит содержимое вашего файла .npmrc
, используя yarn config list
Я не могу заставить это работать с v1.4.1
. У меня есть частное репо Nexus, и я использую его как кеш / прокси ( вот так ). Я не могу найти точных инструкций, так что, возможно, я что-то делаю не так. Я взял синтаксис yarn config
здесь и yarn login
здесь .
Изменить : я должен был упомянуть, что сначала попытался войти в систему через NPM, чтобы получить необходимые .npmrc
прежде чем пытаться с yarn
.
Ниже именно то, что я делаю для тестирования.
git tag --contains dc705768
v1.4.0
v1.4.1
Создайте файл Dockerfile, чтобы предоставить согласованную базовую среду для тестирования.
# Build
# docker build -t yarn-private-registry-test .
# Run
# docker run -it --rm yarn-private-registry-test
FROM debian:9.3-slim
WORKDIR /projects
RUN apt-get update \
&& apt-get --yes install curl gnupg \
&& curl -sL https://deb.nodesource.com/setup_8.x | bash - \
&& apt-get install --yes nodejs \
&& curl -OL https://github.com/yarnpkg/yarn/releases/download/v1.4.1/yarn_1.4.1_all.deb \
&& find . -name yarn*.deb -exec dpkg --install {} \; \
&& find . -name yarn*.deb -exec rm {} \;
docker build -t yarn-private-registry-test .
Подсказка : продолжайте выходить из контейнера Docker и перезапускайте его, чтобы получить чистую среду.
Убедитесь, что среда работает, инициализировав проект и добавив зависимость без каких-либо изменений конфигурации.
docker run -it --rm yarn-private-registry-test
Добавить зависимость left-pad
.
mkdir yarn \
&& cd yarn \
&& yarn init --yes \
&& yarn add left-pad
yarn init v1.4.1
warning The yes flag has been set [...snip...]
success Saved package.json
Done in 0.03s.
yarn add v1.4.1
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
└─ [email protected]
Done in 0.52s.
docker run -it --rm yarn-private-registry-test
mkdir yarn \
&& cd yarn \
&& yarn init --yes \
&& yarn config set registry https://example.com/repository/npm-group/ \
&& yarn login
yarn init v1.4.1
warning The yes flag has been set [...snip...]
success Saved package.json
Done in 0.03s.
yarn config v1.4.1
success Set "registry" to "https://example.com/repository/npm-group/".
Done in 0.04s.
yarn login v1.4.1
question npm username: myusername
question npm email: [email protected]
Done in 6.25s.
Добавить зависимость left-pad
.
yarn --verbose add left-pad
yarn add v1.4.1
verbose 0.349 Checking for configuration file "/projects/yarn/.npmrc".
verbose 0.35 Checking for configuration file "/usr/local/share/.npmrc".
verbose 0.35 Checking for configuration file "/usr/etc/npmrc".
verbose 0.352 Checking for configuration file "/root/.npmrc".
verbose 0.353 Checking for configuration file "/projects/yarn/.npmrc".
verbose 0.353 Checking for configuration file "/projects/.npmrc".
verbose 0.355 Checking for configuration file "/projects/yarn/.yarnrc".
verbose 0.355 Checking for configuration file "/usr/local/share/.yarnrc".
verbose 0.357 Found configuration file "/usr/local/share/.yarnrc".
verbose 0.358 Checking for configuration file "/usr/etc/yarnrc".
verbose 0.358 Checking for configuration file "/root/.yarnrc".
verbose 0.359 Checking for configuration file "/projects/yarn/.yarnrc".
verbose 0.359 Checking for configuration file "/projects/.yarnrc".
verbose 0.365 current time: 2018-01-25T21:55:48.886Z
info No lockfile found.
verbose 0.405 Performing "GET" request to "https://yarnpkg.com/latest-version".
[1/4] Resolving packages...
verbose 0.48 Performing "GET" request to "https://example.com/repository/npm-group/left-pad".
verbose 0.52 Request "https://example.com/repository/npm-group/left-pad" finished with status code 401.
verbose 0.522 Error: Couldn't find package "left-pad" on the "npm" registry.
at new MessageError (/usr/share/yarn/lib/cli.js:186:110)
at NpmResolver.<anonymous> (/usr/share/yarn/lib/cli.js:50354:15)
at Generator.next (<anonymous>)
at step (/usr/share/yarn/lib/cli.js:98:30)
at /usr/share/yarn/lib/cli.js:109:13
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
error An unexpected error occurred: "Couldn't find package \"left-pad\" on the \"npm\" registry.".
info If you think this is a bug, please open a bug report with the information provided in "/projects/yarn/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
verbose 0.809 Request "https://yarnpkg.com/latest-version" finished with status code 200.
.yarnrc
cat /usr/local/share/.yarnrc
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
registry "https://example.com/repository/npm-group/"
email [email protected]
lastUpdateCheck 1516917349331
username myusername
Переходите сразу к желаемой конфигурации, потому что она работает.
docker run -it --rm yarn-private-registry-test
mkdir npm \
&& cd npm \
&& npm init --yes \
&& npm config set registry https://example.com/repository/npm-group/ \
&& npm login
Wrote to /projects/npm/package.json:
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
Username: myusername
Password:
Email: (this IS public) [email protected]
Logged in as myusername on https://example.com/repository/npm-group/.
Добавить зависимость left-pad
.
npm --verbose install left-pad
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli '/usr/bin/npm',
npm verb cli '--verbose',
npm verb cli 'install',
npm verb cli 'left-pad' ]
npm info using [email protected]
npm info using [email protected]
npm verb npm-session 0ed36c84804378c8
npm http fetch GET 200 https://example.com/repository/npm-group/left-pad 78ms
npm http fetch GET 200 https://example.com/repository/npm-group/left-pad/-/left-pad-1.2.0.tgz 28ms
npm verb correctMkdir /root/.npm/_locks correctMkdir not in flight; initializing
npm verb makeDirectory /root/.npm/_locks creation not in flight; initializing
npm verb lock using /root/.npm/_locks/staging-2f9f45630e5bbb1a.lock for /projects/npm/node_modules/.staging
npm info lifecycle [email protected]~preinstall: [email protected]
npm info linkStuff [email protected]
npm verb linkBins [email protected]
npm verb linkMans [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm verb unlock done using /root/.npm/_locks/staging-2f9f45630e5bbb1a.lock for /projects/npm/node_modules/.staging
npm verb saving [ { name: 'left-pad', spec: '^1.2.0', save: 'dependencies' } ]
npm info lifecycle undefined~preshrinkwrap: undefined
npm info lifecycle undefined~shrinkwrap: undefined
npm notice created a lockfile as package-lock.json. You should commit this file.
npm info lifecycle undefined~postshrinkwrap: undefined
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
+ [email protected]
added 1 package in 0.398s
npm verb exit [ 0, true ]
npm info
@ryanjaeb Спасибо за подробный отчет. Единственное, чего мне не хватает, чтобы сказать вам, что здесь может идти не так, - это содержимое файлов ~/.npmrc
и ~/.yarnrc
. Вы вставили свой .yarnrc
, но он не содержит пароля. Также без файла .npmrc
для сравнения трудно определить причину проблемы.
Ваш вариант использования должен нормально работать в ^ 1.4.0, но все дело в том, как выглядит файл конфигурации.
Тбх с вами, я никогда не использую yarn login
, я сначала npm login
а затем использую yarn
. В приведенном выше примере, если вы сначала выполните npm set config registry ... && npm login
а затем выполните add left-pad
- это сработает? Если npm работает, пряжа тоже. Поэтому мне интересно, не работает ли команда yarn login
.
@KidkArolis Игнорируя yarn login
и ожидая, что смогу заставить его работать только с npm login
, я смог добиться некоторого прогресса. Я вижу две вещи.
.npmrc
Документы для npm-login , похоже, не соответствуют тому, что я на самом деле вижу в .npmrc
. В частности, аргумент --always-auth для команды npm login
не влияет на конфигурацию, даже если в документации сказано:
Может использоваться с --registry и / или --scope, например
...
Конфигурация always-auth, зависящая от реестра, имеет приоритет над любой глобальной конфигурацией.
Однако, независимо от того, использую я этот аргумент или нет, я всегда получаю один и тот же .npmrc
. И то и другое:
npm config set registry https://example.com/repository/npm-group/ \
&& npm login --registry=https://example.com/repository/npm-group/
и
npm config set registry https://example.com/repository/npm-group/ \
&& npm login --registry=https://example.com/repository/npm-group/ --always-auth
произвести это .npmrc
:
registry=https://example.com/repository/npm-group/
//example.com/repository/npm-group/:_authToken=NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Анализ трафика, поступающего в мой реестр, показывает, что NPM отправляет токен аутентификации независимо от:
GET /repository/npm-group/left-pad HTTP/1.1
Host: example.com
user-agent: npm/5.6.0 node/v8.9.4 linux x64
npm-in-ci: false
npm-scope:
npm-session: c4c14c0b37be7bd5
referer: install left-pad
pacote-req-type: packument
pacote-pkg-id: registry:manifest
accept: application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*
authorization: Bearer NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
accept-encoding: gzip,deflate
X-Forwarded-Proto: https
X-Forwarded-For: 10.10.10.1
X-Forwarded-Host: example.com
X-Forwarded-Server: example.com
Connection: Keep-Alive
Yarn не отправляет токен, если не установлено always-auth
. Явная установка флага always-auth
в .npmrc
заставляет все работать должным образом.
npm config set always-auth true \
&& cat ~/.npmrc
registry=https://example.com/repository/npm-group/
//example.com/repository/npm-group/:_authToken=NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
always-auth=true
Помимо того, что я знаю, что поведение NPM и Yarn отличается, я недостаточно знаком с ними, чтобы знать, какое поведение является правильным.
yarn login
Думаю, вы правы в том, что yarn login
не работает, но я не тестировал его тщательно. Игнорируя .npmrc
и используя только yarn
, я пытаюсь имитировать конфигурацию NPM.
yarn config set registry https://example.com/repository/npm-group/ \
&& yarn config set always-auth true \
&& yarn login
.yarnrc
:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
registry "https://example.com/repository/npm-group/"
always-auth true
email [email protected]
lastUpdateCheck 1517883362958
username myusername
Что бы я ни делал, мне никогда не предлагают ввести пароль.
@KidkArolis Для меня npm работает без явного always-auth=true
в .npmrc, а yarn (1.3.2 или 1.4.0) - нет. В моем случае я пытаюсь указать все запросы к виртуальному реестру в artifactory. С always-auth=true
и authToken
в .npmrc - он работает в 1.3.2
, поэтому неясно, что именно было исправлено в 1.4.0
.
Это все еще кажется проблемой, особенно с подключением к нашему репозиторию Nexus.
Я пробовал несколько подходов:
~/.yarnrc
и полагаюсь только на то, что находится в ~/.npmrc
.~/.yarnrc
.Кажется, что пряжа не использует хешированное значение _auth
(например, _auth=xyz
) из ~/.npmrc
NPM
npm --version
5.6.0
Пряжа
yarn --version
1.5.1
Работает на OS X 10.13.2.
Мой ~/.npmrc
выглядит так (некоторые настройки _values_ опущены по понятным причинам):
registry=http://nexus-repo:8081/content/repositories/npm-all
init.author.name=Juan Smith
[email protected]
init.author.url=http://nexus-repo:8081/content/repositories/npm/
[email protected]
_auth=BASE64-HASH-USERNAME-PASSWORD
always-auth=true
Мой ~/.yarnrc
выглядит так (опять же очевидные значения опущены):
registry "http://nexus-repo:8081/content/repositories/npm-all//"
email [email protected]
lastUpdateCheck 1521495247797
username jsmith
Не совсем уверен, куда идти дальше. Не совсем понятно, что происходит, за исключением того, что все сборки пряжи терпят неудачу следующим образом:
error An unexpected error occurred: "http://nexus-repo:8081/content/groups/npm-all/lru-cache/-/lru-cache-4.1.2.tgz: Request failed \"401 Unauthorized\"".
FWIW, IANADOE (я не инженер-разработчик), и я просто пытаюсь использовать пакет, который опирается на пряжу для электронных сборок. Возможно, я просто не знаю, как установить хеш base64
username | password для пряжи. Мне не удалось найти документы, объясняющие это.
У @ezweave Sonatype действительно хорошая документация . По этой ссылке также есть инструкции по тестированию, чтобы убедиться, что вы правильно выполняете кодировку base64. Лично я считаю, что проще всего включить область токенов носителя npm в Nexus и использовать npm login
на моей рабочей станции. Пример:
npm config set registry http://nexus-repo:8081/content/repositories/npm-all
npm login --registry=http://nexus-repo:8081/content/repositories/npm-all --always-auth
npm config set always-auth true
Прежде чем пробовать Yarn, убедитесь, что он работает с NPM. Не знаю, имеет ли это значение, но у вас есть две завершающие косые черты ( //
) в реестре .yarnrc
.
@ryanjaeb Итак, наша команда DevOps заблокировала Nexus для _только_ поддержки LDAP Realm. Это может быть сутью проблемы, но есть много инструментов, которые полагаются на yarn
которые я не могу использовать, потому что это, похоже, не поддерживается. Я пробовал добавить _auth
в качестве параметра в соответствующий синтаксис и так далее. Кажется, ничего не работает. (FWIW: множественные косые черты были предполагаемым исправлением связанной проблемы, я сделал это с и без успеха.)
Может подтвердить, что аутентификация Yarn нарушена с помощью Nexus. yarn login
не запрашивает пароль, но сообщает, что вошел в систему успешно (нет - никаких изменений в rc файле),
Публикация запрашивает пароль и публикует, но никогда не считывает токен __auth, где бы он ни был установлен, чтобы вам приходилось каждый раз входить в систему. И вы также не можете использовать пряжу в сценарии CI.
пряжа не работает в CI. Это когда-нибудь сработает?
Эта проблема должна была быть исправлена https://github.com/yarnpkg/yarn/pull/5216. У этого PR было описание, содержащее следующее:
Fixes #4157, #4451, #4672, #4119.
и это привело к тому, что GitHub закрыл автоматически только # 4157, когда этот PR был объединен. Остальные вопросы, наверное, тоже следовало закрыть.
@valcion, это может помочь в решении этих проблем - https://github.com/yarnpkg/yarn/pull/5322 , но это проскочило сквозь трещины ..
Добавление еще одной точки данных - yarn 1.8.x + не работает в моем агенте сборки (VSTS). Возврат ТОЛЬКО yarn
к 1.7.x решает проблему. Он проверяет правильный реестр, но не использует токены, которые вводятся в .npmrc
агентом сборки. Я понимаю, что здесь много переменных, но решил, что это может быть полезно.
Локальный запуск 1.9.x, где токены сохраняются в моем пользователе .npmrc
, работает нормально.
Версия 1.9.x
2018-08-03T21:17:04.9324575Z [command]C:\Windows\system32\cmd.exe /D /S /C "C:\Builds\_tool\yarn\1.9.4\x64\yarn-v1.9.4\bin\yarn.cmd build"
2018-08-03T21:17:05.4481355Z yarn run v1.9.4
2018-08-03T21:17:05.5418442Z $ lerna clean && lerna bootstrap
2018-08-03T21:17:08.3387809Z lerna info version 2.11.0
2018-08-03T21:17:08.3387809Z lerna info versioning independent
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4012821Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4012821Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4169058Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4325326Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4325326Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.7606628Z lerna success clean finished
2018-08-03T21:17:09.5145894Z lerna info version 2.11.0
2018-08-03T21:17:09.5145894Z lerna info versioning independent
2018-08-03T21:17:09.5419287Z lerna info Bootstrapping 9 packages
2018-08-03T21:17:09.5419287Z lerna info lifecycle preinstall
2018-08-03T21:17:09.5576221Z lerna info Installing external dependencies
2018-08-03T21:17:12.8857424Z lerna ERR! execute callback with error
2018-08-03T21:17:12.8857424Z lerna ERR! Error: Command failed: yarn install --mutex network:42424 --non-interactive
2018-08-03T21:17:12.8857424Z lerna ERR! warning package.json: No license field
2018-08-03T21:17:12.8857424Z lerna ERR! warning Waiting for the other yarn instance to finish (4048)
2018-08-03T21:17:12.8857424Z lerna ERR! warning Waiting for the other yarn instance to finish (6896)
2018-08-03T21:17:12.8857424Z lerna ERR! warning No license field
2018-08-03T21:17:12.8857424Z lerna ERR! error An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \"401 Unauthorized\"".
2018-08-03T21:17:12.8857424Z lerna ERR! [1/4] Resolving packages...
2018-08-03T21:17:12.8857424Z lerna ERR! [2/4] Fetching packages...
2018-08-03T21:17:12.8857424Z lerna ERR! info If you think this is a bug, please open a bug report with the information provided in "C:\\Builds\\6\\s\\packages\\<REMOVED>\\yarn-error.log".
2018-08-03T21:17:12.8857424Z lerna ERR! info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
2018-08-03T21:17:12.8857424Z lerna ERR!
2018-08-03T21:17:12.8857424Z lerna ERR! at Promise.all.then.arr (C:\Builds\6\s\node_modules\lerna\node_modules\execa\index.js:236:11)
2018-08-03T21:17:12.8857424Z lerna ERR! at <anonymous>
2018-08-03T21:17:12.9482437Z lerna WARN complete Waiting for 1 child process to exit. CTRL-C to exit immediately.
2018-08-03T21:17:13.0732458Z { Error: Command failed: yarn install --mutex network:42424 --non-interactive
2018-08-03T21:17:13.0732458Z warning package.json: No license field
2018-08-03T21:17:13.0732458Z warning Waiting for the other yarn instance to finish (4048)
2018-08-03T21:17:13.0732458Z warning Waiting for the other yarn instance to finish (6896)
2018-08-03T21:17:13.0732458Z warning No license field
2018-08-03T21:17:13.0732458Z error An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \"401 Unauthorized\"".
2018-08-03T21:17:13.0732458Z [1/4] Resolving packages...
2018-08-03T21:17:13.0732458Z [2/4] Fetching packages...
2018-08-03T21:17:13.0732458Z info If you think this is a bug, please open a bug report with the information provided in "C:\\Builds\\6\\s\\packages\\<REMOVED>\\yarn-error.log".
2018-08-03T21:17:13.0732458Z info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
2018-08-03T21:17:13.0732458Z
2018-08-03T21:17:13.0732458Z at Promise.all.then.arr (C:\Builds\6\s\node_modules\lerna\node_modules\execa\index.js:236:11)
2018-08-03T21:17:13.0732458Z at <anonymous>
2018-08-03T21:17:13.0732458Z at process._tickCallback (internal/process/next_tick.js:188:7)
2018-08-03T21:17:13.0732458Z code: 1,
2018-08-03T21:17:13.0732458Z killed: false,
2018-08-03T21:17:13.0732458Z stdout: '[1/4] Resolving packages...\n[2/4] Fetching packages...\ninfo If you think this is a bug, please open a bug report with the information provided in "C:\\\\Builds\\\\6\\\\s\\\\packages\\\\<REMOVED>\\\\yarn-error.log".\ninfo Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.\n',
2018-08-03T21:17:13.0732458Z stderr: 'warning package.json: No license field\nwarning Waiting for the other yarn instance to finish (4048)\nwarning Waiting for the other yarn instance to finish (6896)\nwarning No license field\nerror An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \\"401 Unauthorized\\"".\n',
2018-08-03T21:17:13.0732458Z failed: true,
2018-08-03T21:17:13.0732458Z signal: null,
2018-08-03T21:17:13.0732458Z cmd: 'yarn install --mutex network:42424 --non-interactive',
2018-08-03T21:17:13.0732458Z timedOut: false,
2018-08-03T21:17:13.0732458Z exitCode: 1 }
2018-08-03T21:17:13.0888721Z error Command failed with exit code 1.
2018-08-03T21:17:13.0888721Z info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Версия 1.7.X
2018-08-03T21:33:16.4477199Z [command]C:\Windows\system32\cmd.exe /D /S /C "C:\Builds\_tool\yarn\1.7.0\x64\yarn-v1.7.0\bin\yarn.cmd build"
2018-08-03T21:33:16.9633413Z yarn run v1.7.0
2018-08-03T21:33:17.0727225Z $ lerna clean && lerna bootstrap
2018-08-03T21:33:19.2509802Z lerna info version 2.11.0
2018-08-03T21:33:19.2509802Z lerna info versioning independent
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2978554Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.6728520Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.8759839Z lerna success clean finished
2018-08-03T21:33:20.5947225Z lerna info version 2.11.0
2018-08-03T21:33:20.5947225Z lerna info versioning independent
2018-08-03T21:33:20.6103497Z lerna info Bootstrapping 9 packages
2018-08-03T21:33:20.6103497Z lerna info lifecycle preinstall
2018-08-03T21:33:20.6415982Z lerna info Installing external dependencies
2018-08-03T21:33:23.1103303Z lerna info Symlinking packages and binaries
2018-08-03T21:33:23.1415791Z lerna info lifecycle postinstall
2018-08-03T21:33:23.1415791Z lerna info lifecycle prepublish
2018-08-03T21:33:23.1415791Z lerna info lifecycle prepare
2018-08-03T21:33:23.1415791Z lerna success Bootstrapped 9 packages
2018-08-03T21:33:23.1572133Z $ ts-node ./build/index.ts
2018-08-03T21:33:58.5218101Z Done in 41.54s.
Привет, ребята, у меня есть просьба к людям, которые следят за этой проблемой и используют частный реестр.
Мы рассматриваем возможность удаления имени хоста реестра из файла блокировки. Это упростило бы переключение с частного реестра на другой, но недостатком является то, что все реестры должны использовать аналогичные URL-адреса (поскольку имя хоста не будет частью URL-адреса, мы просто объединим его во время выполнения с активным конфигурация).
Не могли бы вы помочь нам подтвердить в # 5892, что этот рабочий процесс будет работать для вашего частного поставщика реестра (или сообщите нам, если нет)? Это поможет нам обрести уровень уверенности, необходимый для внесения этого изменения. Благодаря!
У меня также возникают проблемы с тем, что yarn publish
не читает токен аутентификации из моего .npmrc
. Я использую это на Ubuntu.
пряжа - 1.9.4
npm - 5.5.1
Вот как выглядит мой ~/.npmrc
(с запутанными токеном и реестром):
registry=http://myprivateregistry.net/
//myprivateregistry.net/:_authToken="myAuthToken"
Когда я запускаю yarn publish --noninteractive
, я получаю следующую ошибку:
yarn publish v1.9.4
[1/4] Bumping version...
info Current version: 2.1.3
[2/4] Logging in...
error No token found and can't prompt for login when running with --non-interactive.
info Visit https://yarnpkg.com/en/docs/cli/publish for documentation about this command.
Я безрезультатно пробовал следующее:
~/.npmrc
в локальный .npmrc
в каталоге моего проектаyarn login
с моими учетными данными перед запуском yarn publish
Я также подтвердил, что запуск npm publish
позволяет пройти этап аутентификации (он не работает на этапе управления версиями, потому что он не позволяет мне переопределить тот же номер версии. Вот почему я хочу использовать yarn publish --non-interactive
, потому что он позволяет загружать, скажем, изменения README с тем же номером версии)
Что-то еще мне не хватает? Благодаря!
@ liuhelen10 Есть ли в вашем проекте файл .yarnrc
? Это сработало для меня с токеном, хранящимся внутри ~/.npmrc
пример
$ cat .yarnrc
registry "https://registry.npmjs.org/"
always-auth = true
в .npmrc сделали свое дело, больше не получая 401 при использовании Yarn.
Что не имеет смысла, но что угодно :)
об этом сообщалось в 2017 году, сейчас 2019 год, и эта проблема все еще существует.
Согласен, это все еще не работает.
.npmrc
always-auth=true
<strong i="7">@somename</strong>:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=[token]
.yarnc
"<strong i="11">@somename</strong>:registry" "https://npm.pkg.github.com/"
Я также получаю сообщение об ошибке с npm.pkg.github.com:
Integrity checked failed (none of the specified algorithms are supported
Я также получаю сообщение об ошибке с npm.pkg.github.com:
Integrity checked failed (none of the specified algorithms are supported
И это тоже
У меня была такая же проблема с Nexus версии 3, но я решил использовать подход, упомянутый @plitex в этом выпуске https://github.com/yarnpkg/yarn/issues/3093#issuecomment -317671597.
Поместите это содержимое в файл .npmrc
. Вам не нужно иметь никаких настроек в файле .yarnrc
.
always-auth=true
registry=https://nexus.server.com/repository/npm-group/
//nexus.server.com/repository/npm-group/:_authToken={AUTH_TOKEN}
пряжа - версия
1.17.3
npm --version
6.10.2
@nbransby , @revmischa : Также ознакомьтесь с выпуском № 7552, возможно, в этом случае сообщение об ошибке правильное.
Мне помогли две вещи:
Я начал получать эту ошибку на пряжи 1.19.1. Раньше эта пряжа, казалось, правильно собирала информацию о реестре и токене из .npmrc
, но с 1.19.1 мне пришлось добавить конфигурацию registry
в .yarnrc
, иначе я только что получил 401 ошибку.
Как только это было сделано, он заработал и продолжил забирать токен из .npmrc
. Мне кажется, что это регресс - нет никаких веских причин для репликации конфигурации реестра с .npmrc
на .yarnrc
.
Как и @rocketraman , как только я установил yarn 1.19.1, я начал сталкиваться с ошибками 401 при попытке установить пакеты с ограниченной областью видимости из частного реестра (нексуса). npm install
отлично работает.
Пряжа пониженного качества и все снова работает:
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.17.3
могу подтвердить, что это ВСЕ ЕЩЕ проблема
Получение ошибки 401 при запуске yarn install
Request "https://npm.pkg.github.com/user/@scope/package" finished with status code 401.
где npn install
работает без проблем
Последние 2 часа я потратил на отладку этой проблемы и, благодаря моему другу @AndreiCalazans , у меня есть обходной путь.
Поделитесь здесь для всех, кто может бороться с подобным.
Я развертываю в Heroku проект, который использует рабочие области yarn
. Даже если я отброшу yarn.lock
и использую npm install
, проект будет построен с рабочими пространствами и _не будет вообще_ без yarn
.
Проект полагается на пакеты, размещенные на GitHub Packages, и должен пройти аутентификацию на GitHub с помощью токена.
Heroku увидит yarn.lock
и установит зависимости с помощью yarn
, который проигнорирует файл ~/.npmrc
который я создаю перед сборкой.
Предварительная сборка, я бы запустил
echo "always-auth=true\n//npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN}\" >> ~/.npmrc",
Это создает файл ~/.npmrc
с таким содержимым:
always-auth=true
//npm.pkg.github.com/:_authToken=whatevermytokenis
yarn
проигнорирует это и потерпит неудачу при попытке извлечь зависимость из реестра пакетов GitHub с помощью 401 Unauthorized
.
Андрей упомянул псевдонимы _ только организация_ для использования реестра GitHub и _ затем_ добавление токена реестра GitHub в.
По сути, немного изменив файл ~/.npmrc
чтобы добавить следующее:
always-auth=true
+<strong i="36">@MY_ORG</strong>:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=whatevermytokenis
Это решило все, и внезапно yarn
использовал предоставленный токен аутентификации для npm.pkg.github.com
для любых пакетов до @MY_ORG
которые были организацией GitHub.
Ух! Я надеюсь, что это поможет кому-то! 💞
Это все еще проблема !! Установка NPM проходит без проблем, пряжа добавляется
error Couldn't find package "@diligentcorp/atlas-react" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
На моем компьютере с Windows проблема заключалась в том, что папка пользователя с файлом .npmrc моего уровня пользователя находилась на сетевом диске. В папке локального пользователя на машине не было файла .npmrc, но yarn, похоже, смотрит в эту папку. Копирование .npmrc с сетевого диска в локальную папку пользователя устранило проблему (токен аутентификации хранился в пользовательском уровне .npmrc).
Я обнаружил это случайно, набрав «cd ~» в моем git bash, и он переключился на удаленную домашнюю папку (которую я никогда не использую).
@TejasQ У меня не сработало
Я также использую пакеты GitHub.
По-прежнему получаю 401 unauthorized
хотя он отлично работает с npm
Мне удалось заставить его работать с пряжей v1.22.0
.npmrc
always-auth=true
<strong i="7">@fortawesome</strong>:registry=https://npm.fontawesome.com
//npm.fontawesome.com/:_authToken=xyz-xyz-xyz-xyz
.yarnrc
"<strong i="11">@fortawesome</strong>:registry" "https://npm.fontawesome.com"
registry "https://some-regular-registry.org"
а затем выполните: yarn add @fortawesome/fontawesome-pro
Что касается меня, я надеялся, что смогу заставить его работать только с .npmrc
, но он работает только при добавлении .yarnrc
, поэтому нам нужно продублировать конфигурацию только для пряжи.
Я думаю, это то, с чем я сталкиваюсь. Он работает, когда .npmrc
находится в домашнем каталоге, но не в каталоге проекта (необходимо для jenkins / travis).
https://github.com/yarnpkg/yarn/issues/8034
Это решило это для меня: https://github.com/yarnpkg/yarn/issues/4451#issuecomment -570691809
Убедитесь, что у вас нет /name
после реестра при настройке области действия:
- <strong i="7">@4r7d3c0</strong>:registry=https://npm.pkg.github.com/4r7d3c0
+ <strong i="8">@4r7d3c0</strong>:registry=https://npm.pkg.github.com
Согласно документу registry=https://npm.pkg.github.com/OWNER
, я упустил из виду, что владелец не должен присутствовать при настройке области. NPM могла справиться с этим, но yarn - нет.
Для тех, кто использует псевдонимы, проверьте этот обходной путь: https://github.com/yarnpkg/yarn/issues/8130#issuecomment -636281053
Пришлось разделить .npmrc
уровне пользователя и .npmrc
на уровне проекта, чтобы пряжа уважала токены пакетов GitHub. Ключевым моментом было перемещение именованных объявлений реестра с уровня пользователя на уровень проекта.
Содержимое ~/.npmrc
_auth=#####TOKEN_FOR_ARTIFACTORY#####
always-auth=true
registry=https://artifactory.mycompany.net/artifactory/api/npm/npm/
//npm.pkg.github.com/:_authToken=####GitHub_NPM_REGISTRY_TOKEN#####
Содержимое ~/projects/blah/.npmrc
<strong i="14">@mycompany</strong>:registry=https://npm.pkg.github.com
Пока я не переместил запись реестра семейных пакетов с именем ^ на уровень проекта .npmrc
, yarn install
давал мне 401 (для пакетов, размещенных на GH под @mycompany
).
Для сборки Docker монтируйте их отдельно:
base.Dockerfile
:
# syntax=docker/dockerfile:1-experimental
## ^ need to enable --mount=type=secret support
ARG BASE_IMAGE
FROM ${BASE_IMAGE} as build
# note that only project-level .npmrc is copied
COPY package.json yarn.lock .npmrc ./
# ~/.npmrc with actual secrets is mounted as "secret" (does not stay in image)
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc,required \
yarn install --production --frozen-lockfile ...
Команда сборки Docker:
DOCKER_BUILDKIT=1 docker build \
--build-arg BASE_IMAGE=$(BASE_IMAGE) \
--secret id=npmrc,src="$(HOME)/.npmrc" \
-t $(IMAGE_NAME):$(IMAGE_TAG) \
-f base.Dockerfile .
_ (Обратите внимание, что мне НЕ нужно .yarnrc
чтобы это работало, но я использую пряжу 1.17.3, поэтому для других версий все может быть иначе) _
Я немного покопался, и кажется, что пряжа использует неправильные учетные данные.
~ / .npmrc
//npm-old.visualon.de/npm/vo-npm/:_password=XXXXXX
//npm-old.visualon.de/npm/vo-npm/:username=kriese
//npm-old.visualon.de/npm/vo-npm/:always-auth=true
//npm-new.visualon.de/:_authToken="XXXXXX"
package.json
{
"name": "yarn-auth",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.1",
"moment": "2.20.1"
}
}
yarn.lock
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
[email protected]:
version "2.20.1"
resolved "https://npm-old.visualon.de/npm/vo-npm/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
integrity sha1-1usaRsvMFKKy+UNBEsH/iQfzE/0=
tslib@^2.0.1:
version "2.0.1"
resolved "https://npm-new.visualon.de/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==
При попытке установить yarn отправляет токен bearer
с npm-new.visualon.de
на npm-old.visualon.de
. Таким образом, программа semms yarn сравнивает только базовый домен.
Если кто-то все еще сталкивается с этим, это то, что сработало для меня.
.npmrc:
always-auth=true
<strong i="6">@orgaccount</strong>:registry=https://npm.pkg.github.com
registry=https://registry.yarnpkg.com
https://npm.pkg.github.com/:_authToken=yyyyjjjjj3333888etc
Не уверен, сталкивается ли кто-нибудь с подобной проблемой, но, возможно, это поможет кому-то сэкономить немного времени:
Я использую Azure Artifacts в качестве частного реестра и настроил файлы PAT и .npmrc, как описано в них.
Тем не менее, я столкнулся с той же проблемой, что npm install
работал отлично, но yarn install
все время сталкивался с ошибкой 401.
После небольшой попытки и ошибки оказалось, что у меня есть специальный символ в моем URL-адресе реестра (... @ Local / ...), но Azure Artifacts разрешает это в представлении Unicode в своем руководстве по настройке. npm отлично справляется с этим, yarn - не очень. Установка фактического символа @ в URL-адресе решила мою проблему.
Самый полезный комментарий
об этом сообщалось в 2017 году, сейчас 2019 год, и эта проблема все еще существует.