Yarn: Произошла непредвиденная ошибка: Ошибка запроса \ "404 Not Found \" ".

Созданный на 21 февр. 2017  ·  89Комментарии  ·  Источник: yarnpkg/yarn

Вы хотите запросить функцию или сообщить об ошибке ?
Ошибка

Каково текущее поведение?
У меня есть пакет, который зависит только от модулей из репозитория npmjs . В основном это публичные репозитории, однако 5 из них - частные репозитории, ограниченные символом @. Опять же, они размещены на npmjs .

До сегодняшнего дня все они загружали установку без проблем. Однако что-то изменилось, и теперь один из них не устанавливается со следующей ошибкой:

error An unexpected error occurred: "http://registry.npmjs.org/@pepperhq/hmac-http-authentication/-/hmac-http-authentication-0.1.2.tgz: Request failed \"404 Not Found\"".

Как я уже говорил ранее, другие частные репозитории (все в той же области @) загружаются и устанавливаются по назначению. Это наводит меня на мысль, что это не проблема аутентификации.

Мой .npmrc который находится в корне моего проекта и содержит мои _authToken выглядит так:

//registry.npmjs.org/:_authToken=TOKEN_HERE

Я уже выполнил следующие действия:

1) Повторный вход в систему с использованием npm login чтобы получить новый токен доступа
2) Убедитесь, что имя пакета правильное (я скопировал его с веб-сайта npm, чтобы убедиться)
3) Запуск rm -rf node_modules && rm yarn.lock && yarn cache clean
4) Удаление ошибочного пакета из моего package.json и попытка повторно yarn add it
5) Попытка выполнить эквивалентную команду npm install --save . Это сработало.

Если текущее поведение является ошибкой, предоставьте шаги для воспроизведения.
Поскольку я не уверен в причине, я не уверен, как воспроизвести. Готов обсудить дальнейшее обсуждение в Discord или в комментариях по этому вопросу.

Какое поведение ожидается?
Я ожидаю, что Yarn установит все мои частные репозитории с npmjs

Пожалуйста, укажите ваш node.js, yarn и версию операционной системы.
Взято из yarn-error.log

Yarn version: 
  0.20.3

Node version: 
  6.9.5

Platform: 
  darwin x64
needs-discussion triaged

Самый полезный комментарий

Спасибо всем, я тоже решил эту проблему, удалив yarn.lock.

Все 89 Комментарий

Кстати, пакет явно существует, и yarn явно каким-то образом обращается к пакету, потому что URL-адрес содержит номер версии, которую он пытается получить.

Проведя еще несколько тестов, я обнаружил, что тот же пакет не может быть установлен из других репозиториев, которые требуют его при использовании Yarn . Однако он отлично работает при использовании npm .

Это заставляет меня думать, что это не конфигурация моего репозитория. Может быть, это как-то связано с именем пакета, вызывающего Yarn up, или кодировкой URL-адреса или чем-то еще?

Хвататься здесь за соломинку, но, надеюсь, это может кого-то подтолкнуть в правильном направлении

Я исправил это: я просто повторно опубликовал проблемный пакет с новым номером версии.

Понятия не имею, почему это исправлено.

Я оставлю это здесь на случай, если это поможет отладке.

У меня такая же проблема. Кажется, что это происходит случайно и часто решается простым повторением сборки.

Мы также сталкиваемся с той же проблемой.
Некоторые частные модули работают, некоторые нет; все тот же @scope.

Мы столкнулись с той же проблемой. Еще немного контекста здесь в надежде, что это может помочь

  • Мы использовали yarn в нашем CI (Drone), который работает в эфемерных контейнерах Docker [Alpine Linux]
  • Проблема возникла только в ОДНОЙ из наших служб, в то время как с другими службами ничего не случилось, хотя у них точно такое же дерево зависимостей (!)
  • ручная установка на мой Mac для того же репо вообще не дала никаких проблем (!)
  • проблема была ограничена одним частным пакетом

Как упоминалось выше в качестве обходного пути, публикация новой версии пакета решила проблему.

К сожалению, мне не удалось получить подробную информацию о yarn-error.log поскольку контейнеры уничтожаются сразу после неудачной сборки. Если у кого-то еще есть эта проблема, не могли бы вы попробовать еще раз с установкой verbose и закинуть сюда логин?

Я наблюдаю ту же проблему. Я использую образ докера в circleci 2.0 и имею некоторые не связанные с этим проблемы, которые я отлаживаю локально (разница компиляции в cci и local).

  • когда я yarn на хост-машине OSX, все работает.
  • когда я yarn на контейнере (Ubuntu), я получаю сообщение об ошибке .
  • когда я yarn в контейнере ^^ (Ubuntu), работающем в инфраструктуре circleci 2.0, он работает.

У меня есть установка .npmrc и т. Д. Это действительно головная боль, потому что это не работает для меня в локально работающем контейнере.

Verbose не предоставил мне никакой информации, которую я мог бы определить:

root<strong i="17">@2adc7c09ff9a</strong>:~/af/spec/dummy# yarn --pure-lockfile --ignore-optional
yarn install v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/root/af/spec/dummy/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
root<strong i="18">@2adc7c09ff9a</strong>:~/af/spec/dummy# yarn --pure-lockfile --ignore-optional --verbose
yarn install v0.21.3
verbose 0.178 current time: 2017-03-01T20:22:52.715Z
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 0.798 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz".
verbose 0.861 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/ui/-/ui-1.0.34.tgz".
verbose 0.894 Performing "GET" request to "https://registry.yarnpkg.com/react-relay/-/react-relay-0.10.0.tgz".
verbose 0.895 Performing "GET" request to "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz".
verbose 0.919 Performing "GET" request to "https://registry.yarnpkg.com/eslint/-/eslint-3.15.0.tgz".
verbose 0.941 Performing "GET" request to "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.39.0.tgz".
verbose 0.951 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/material-ui/-/material-ui-0.16.87.tgz".
verbose 0.966 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/react-formal/-/react-formal-0.24.7.tgz".
verbose 1.003 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz".
verbose 1.103 Performing "GET" request to "https://registry.yarnpkg.com/graphql/-/graphql-0.9.1.tgz".
verbose 1.178 Performing "GET" request to "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz".
verbose 1.206 Performing "GET" request to "https://registry.yarnpkg.com/material-ui/-/material-ui-0.16.7.tgz".
verbose 1.249 Performing "GET" request to "https://registry.yarnpkg.com/react-i18next/-/react-i18next-2.2.0.tgz".
verbose 1.261 Performing "GET" request to "https://registry.yarnpkg.com/react-relay-network-layer/-/react-relay-network-layer-1.4.0.tgz".
verbose 1.272 Performing "GET" request to "https://registry.yarnpkg.com/react-router/-/react-router-3.0.2.tgz".
verbose 1.696 Performing "GET" request to "https://registry.yarnpkg.com/react-router-relay/-/react-router-relay-0.13.5.tgz".
verbose 1.764 Performing "GET" request to "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.2.0.tgz".
verbose 2.063 Performing "GET" request to "https://registry.yarnpkg.com/recompose/-/recompose-0.22.0.tgz".
verbose 2.144 Error: https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed "404 Not Found"
    at Request.handleRequestError (/root/.yarn/lib/fetchers/tarball-fetcher.js:231:20)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:189:7)
    at Request.onRequestResponse (/root/.yarn/node_modules/request/request.js:986:10)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:189:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:522:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
    at TLSSocket.socketOnData (_http_client.js:411:20)
    at emitOne (events.js:96:13)
    at TLSSocket.emit (events.js:189:7)
error An unexpected error occurred: "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/root/af/spec/dummy/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
root<strong i="21">@2adc7c09ff9a</strong>:~/af/spec/dummy# cat ~/.npmrc
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
root<strong i="24">@2adc7c09ff9a</strong>:~/af/spec/dummy# echo $NPM_TOKEN
xxxxx-xxxx-xxxx-xxxx-xxxxxxxx

То же самое и здесь, он работает локально в OSX, но не в контейнере CircleCI (circleci 1.0).

Я попытался yarn cache clean - после этого не удалось установить другой пакет.

Это происходит с yarn 0.18.1, а также с 0.21.3 - может быть, что-то изменилось в конфигурации реестра yarnpkg? Или, поскольку я думаю, что все в комментариях здесь используют CircleCI в проблемном сценарии, это проблема с конфигурацией CircleCI?

Итак, мы думаем, что нам удалось решить проблему; будет интересно узнать, работает ли это для других:
Нам пришлось внести небольшое изменение в .npmrc что не имеет большого смысла, почему это работает:

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="8">@ourscope</strong>:registry=https://registry.npmjs.org/

Следует отметить, что нам потребовались как обычный реестр, так и один для нашего частного реестра. Просто убедитесь, что вы заменили @ourscope своим собственным.

Дайте мне знать, поможет ли это кому-нибудь.

@rogchap, я только что попробовал ваше решение, но все еще вижу ту же проблему, что и раньше :(

у нас есть дефис в названии области видимости, может быть, это может быть виновато?

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
@our-scope:registry=https://registry.npmjs.org/

@rogchap этот обходной путь никак не повлиял на нашу ситуацию.

root<strong i="7">@f41305331cb8</strong>:~/af/spec/dummy# cat ~/.npmrc
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="8">@alienfast</strong>:registry=https://registry.npmjs.org/

Подтверждено, что это не удается с помощью 0.20.4 и 0.21.3 . Учитывая, что это также работало для меня без проблем, мне любопытно, изменилось ли что-то на стороне сервера, чтобы вызвать это. Теперь это определенно похоже на bug .

  • Я только что развернул новые версии «оскорбительных» модулей с областью видимости, и это не имело никакого значения, та же ошибка.
  • Я запустил npm install и у меня нет проблем с получением модулей в проблемной среде

Итак, не исправлено для меня ... снова.

У меня был другой частный модуль, который дал мне сообщение 404, хотя он, кажется, разрешает правильную версию (где-то должен что-то правильно читать) и, кажется, пытается загрузить тот же URL-адрес tar, что и NPM.

На этот раз я УДАЛИЛ реестры (кроме авторизации) в .npmrc чтобы заставить его работать!

Нет никакой согласованности, случайная "игра" с .npmrc вроде временно работает.

Я пытаюсь продвигать Yarn, но каждый инженер в нашей компании (справедливо) говорит, что Yarn «нестабилен», «непригоден для использования», «ненадежен», «не работает с частными модулями», «не работает на CI-сервер "и т. Д.

Интересно, не делает ли частный реестр NPM что-то "напуганное" с пользовательским агентом! ?? <- Безумная догадка.

Чтобы лучше понять это, нам может потребоваться некоторая информация от основных участников. @bestander , какие идеи?

Мы мало используем частные пакеты, поэтому этой функции уделяется меньше внимания.
Afaik большинство проблем было исправлено сообществом.
Это отличная возможность попробовать это исправить.
Я не думаю, что реестр npm будет что-то делать с ответом на основе UA, скорее всего, токен по какой-то причине вообще не передается.

Итак, я раздвоил пряжу и немного повозился. Похоже, что он теряет токен до того, как получит tarball или, скорее, после отправки первого запроса ...

yarn add v0.23.0-0
verbose 0.227 current time: 2017-03-06T20:25:18.877Z
info No lockfile found.
[1/4] Resolving packages...
⠁ { authorization: 'Bearer MY_TOKEN_IS_HERE' } <<<<<----- here it uses my token for the request
verbose 0.409 Performing "GET" request to "https://registry.npmjs.org/@ovos-media%2flib-director".
verbose 1.306 Request "https://registry.npmjs.org/@ovos-media%2flib-director" finished with status code 200.
{} <--- token is gone
verbose 1.316 Performing "GET" request to "https://registry.npmjs.org/bluebird".
{} <--- token is gone
verbose 1.318 Performing "GET" request to "https://registry.npmjs.org/jwt-decode".
verbose 1.531 Request "https://registry.npmjs.org/bluebird" finished with status code 200.
verbose 1.572 Request "https://registry.npmjs.org/jwt-decode" finished with status code 200.
[2/4] Fetching packages...
https: /@ovos-media/lib-director/-/lib-director-0.4.1.tgz https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz
{} <--- token is gone
verbose 1.597 Performing "GET" request to "https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz".
verbose 2.663 Error: https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz: Request failed "404 Not Found"
    at Request.res (/home/ubuntu/yarn/lib/fetchers/tarball-fetcher.js:232:20)
    at emitOne (events.js:90:13)
    at Request.emit (events.js:182:7)
    at Request.onRequestResponse (/home/ubuntu/yarn/node_modules/request/request.js:986:10)
    at emitOne (events.js:90:13)
    at ClientRequest.emit (events.js:182:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:469:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:103:23)
    at TLSSocket.socketOnData (_http_client.js:359:20)
    at emitOne (events.js:90:13)
error An unexpected error occurred: "https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz: Request failed \"404 Not Found\"".

Когда я явно устанавливаю заголовок authorization в npm-registry.js перед отправкой запроса, все работает нормально. Так что, похоже, есть ошибка в пряже, а не на стороне сервера.

РЕДАКТИРОВАТЬ:

Хорошо, поэтому после дополнительной проверки эта проблема возникает из-за того, что проверка того, должен ли быть установлен заголовок авторизации, возвращает false в npm-registry.js -> https://github.com/yarnpkg/yarn/pull/2598/files#diff -b053bee294c216269844e5874039b6caR62
А это, в свою очередь, происходит потому, что он сравнивает прокси-сервер реестра yarnpkg с реестром npmjs.

https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz https://registry.npmjs.org/

Итак, я понял, как решить эту проблему для нас, не меняя исходный код yarns.
Это в основном то, что опубликовал @rogchap, но (в нашем случае) в другом направлении:

registry=https://registry.npmjs.org/
@ovos-media:registry=https://registry.yarnpkg.com/
//registry.npmjs.org/:_authToken=your-auth-token

ИЛИ, как вариант, полностью избавиться от реестра:

//registry.npmjs.org/:_authToken=your-auth-token

Кажется, это работает, потому что тогда yarn не использует разные реестры для рассматриваемого пакета для получения информации и архивов. Однако я не уверен, почему пряжа смешивает эти два, и я думаю, что, возможно, проверку токена аутентификации можно как-то изменить / улучшить.

Какой следующий шаг?
Задокументировать обходной путь или внести изменения в Yarn?

Я пробовал все возможные комбинации в течение последних нескольких часов, и я думаю, что можно с уверенностью сказать, что для этой проблемы нет надежного решения. @flipace есть идея, можно ли это легко исправить? Оба ваших метода у меня не работают :(.

На самом деле, поцарапайте это, это так. Удаление назначений реестра и сохранение только строки с токеном авторизации, похоже, помогает. Блин опечатки. Спасибо @flipace!

@bestander, в ближайшие дни я постараюсь придумать пиар, поведение пряжи в этом случае не то, что должно быть. Спасибо @pleunv за подтверждение того, что обходной путь работает и для вас!

К сожалению, обходной путь у меня не работает 😿

@willrstern, может, вы разместите свой .npmrc?

Ах, удаление .yarnrc сработало для меня. Содержание было:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://registry.npmjs.org/"
email <email>
lastUpdateCheck 1489181224804
username <username>

обратите внимание, что реестр npmjs.org был добавлен мной при устранении неполадок, почему он не работает, поэтому это не была конфигурация, вызывающая нарушение.

@flipace .npmrc - это всевозможные обходные пути, указанные выше, включая строку только для токенов.

~ Ни один из этих способов не помог мне. ~

На самом деле это работает, если я помещаю это в свой файл докеров:

RUN echo -e "registry=https://registry.npmjs.org/\n//registry.npmjs.org/:_authToken=\${NPM_AUTH_TOKEN}\nsatoshipay:registry=https://registry.npmjs.org/" > /usr/src/app/.npmrc
RUN yarn

Рассматриваемый объем для меня @satoshipay

У нас с коллегой была эта проблема ... после установки узла v7.7.4 и повторного входа в npm через npm login все

@Levino Можете ли вы запустить yarn config list и посмотреть, получает ли yarn файл .npmrc? В # 521 @BohdanTkachenko решил вопрос аналогичным образом. По крайней мере, у меня это тоже работает :)

Напоминаю, что пиар от сообщества приветствуется, никто из основной команды в настоящее время не занимается этим.

@bestander Есть ли какие-нибудь
Наш текущий обходной путь - вернуться к использованию npm 😞

Где-то в резолвере пакетов или сборщике пакетов.

Во вторник, 16 мая 2017 г., в 06:29, Роджер Чепмен [email protected]
написал:

@bestander https://github.com/bestander Есть ли указатели из
основная команда, где могут быть проблемы?
Наш текущий обходной путь - вернуться к использованию npm 😞

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/yarnpkg/yarn/issues/2738#issuecomment-301679399 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/ACBdWMCFoI3uXa_ROrI-ZqwvTGyJjUrhks5r6TQygaJpZM4MGvow
.

Для всех, у кого есть эта проблема, проверьте наличие файла .npmrc в каталоге вашего проекта, а также во всех родительских каталогах над ним. Если он существует, он заменит файл .npmrc в вашем домашнем каталоге. Один из членов моей команды столкнулся с этой проблемой. У него был другой токен, установленный в другом файле .npmrc.

Мне тоже есть где еще посмотреть. Обычно эти проблемы возникают с yarn install и использованием закрытых пакетов с ограниченным объемом в CI . Вчера у меня снова возникла проблема. Член группы, создавший новую службу, не настроил registry.npmjs.org в качестве реестра для области в своем локальном .npmrc. Это привело к тому, что yarn.lock содержал ссылки registry.yarnpkg.com для всех пакетов, включая пакеты с ограниченными областями. Как ни странно, это работало локально, но сломалось в CI. Поэтому я удалил yarn.lock и воссоздал его на своей машине, где я установил registry.npmjs.org для области видимости в моем файле .npmrc. Теперь в файле yarn.lock были ссылки только на registry.npmjs.org . Я вставил новый yarn.lock, и CI прошел без проблем.

Спасибо!

Также наличие .npmrc в cwd помогло нам на gitlab-ci.

У меня такая же проблема с контейнером докеров + yarn 0.26.1 (установка отлично работает локально на моем Mac).

.npmrc - это:

<strong i="8">@binded</strong>:registry=https://registry.npmjs.com/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}

NPM_TOKEN установлен правильно. Получение следующей ошибки:

====>> cat .npmrc
  #!/bin/bash -eo pipefail
cat .npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
====>> build
  #!/bin/bash -eo pipefail
build
engines.node (package.json):  7
engines.npm (package.json):   unspecified (use default)
v7.10.0 is already installed.
Now using node v7.10.0 (npm v4.2.0)
default -> 7 (-> v7.10.0 *)
Using default npm version: 4.2.0
Resolving yarn version 0.26 via semver.io...
Downloading and installing yarn (0.26.1)...
Installed yarn 0.26.1
Installing node modules (yarn.lock)
yarn install v0.26.1
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@binded/binded-client/-/binded-client-1.3.2.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/ci/project/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Exited with code 1
Step failed
Task failed

Я также пробовал со следующим .npmrc :

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="16">@binded</strong>:registry=https://registry.npmjs.com/

Я не уверен, что это актуально, но мои списки yarn.lock (он разрешается как https://registry.yarnpkg.com/... вместо https://registry.npmjs.com/... ):

"@binded/binded-client@^1.3.2":
  version "1.3.2"
  resolved "https://registry.yarnpkg.com/@binded/binded-client/-/binded-client-1.3.2.tgz#0c29ed98436084b39420020a533df26da3ebbda3"

обновление : если я удалю yarn.lock , установка завершится успешно.
обновление : похоже, установка [email protected] устранила мою проблему (я думаю, что раньше использовал [email protected] )

@olalonde У меня была такая же ошибка. Установка реестра на моей машине на https://registry.npmjs.org/ и создание yarn.lock решила проблему для меня.

Здравствуйте,

Поскольку у меня была такая же проблема и мне удалось ее решить, я собираюсь поделиться своим опытом.
Я пробовал все обходные пути random , но, как сказал @rogchap, у меня сработало возвращение к npm.

После успешной установки с помощью npm yarn install перестал выдавать 404 Not Found .

Я понятия не имею, что случилось и как это было исправлено.
Я буду следить за этим вопросом. Надеюсь, кто-нибудь разгадывает эту загадку.

Лучший,
Пгергов

Эта проблема случайно возникает в сборках Codeship. Есть ли прогресс или идеи, что вызывает это?

Привет, ребята, просто хотел с вами поделиться, что в 0.27.5 проблема решена. Для справки: https://github.com/yarnpkg/yarn/issues/3765
Сейчас этот вопрос кажется решаемым.

Спасибо за подписку ,

У меня тоже была эта проблема сегодня. Я изменил реестр на URL-адрес архива github. Мне не удалось найти URL-адрес npmjs, поэтому я попробовал найти здесь Github.
https://github.com/{USER}/{REPO}/tarball/{BRANCH}

Просто поместите это здесь на случай, если у кого-то такая же проблема, как у меня.

У меня последняя версия 0.27.5. У меня также возникает ошибка запроса 404 Not Found . Понижение версии до 0.27.3 работает.

@panalbish, вы можете попробовать 0.28.2 или обновить свой токен аутентификации, чтобы проверить, работает ли он.

@panalbish Спасибо за предложение. Понижение до 0.27.3 сработало.
@BYK Я пробовал 0.28.2 и 0.28.4, они оба потерпели неудачу. Я получаю сообщение об ошибке при попытке загрузить код с github

yarn install v0.27.5
warning package.json: No license field
warning [email protected]: No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://codeload.github.com/soda0289/typescript-eslint-parser/tar.gz/840978a594dd659cfa2b40d8672ce7a742864623: Request failed \"404 Not Found\"".

Если бы я догадывался, может ли он отправляет токены аутентификации в домен github, вызывая ошибку 404. Постараюсь изучить больше сегодня вечером.

Кажется, эта проблема покрывает проблему:
https://github.com/yarnpkg/yarn/issues/3907

Дубликат № 3907.

Кажется, удаление yarn.lock перед выполнением команды yarn (или yarn install ) может решить эту проблему для меня.

Кажется, удаление yarn.lock перед выполнением команды yarn (или yarn install) может решить проблему для меня.

А потом вообще отказаться от пряжи. Файл yarn.lock - это файл, который гарантирует «воспроизводимые сборки». Вы никогда не захотите это удалять.

Хорошо, успокойся. Это было дело самого приложения, которое я пытался использовать.
Кстати, не должно быть достаточно package.json для сборки?

Технически да. Файл блокировки гарантирует, что вы будете использовать те же версии, что и все остальные в команде. Если по какой-то причине вам все равно, вы можете удалить файл блокировки, и Yarn создаст новый с нуля.

При этом любопытно, что он решил вашу проблему, поскольку тот, который мы здесь отслеживаем, связан с параметром конфигурации. Может быть, ваш файл блокировки ссылался на URL-адрес, который был удален с тех пор? Может быть, коммит git, который был удален принудительным нажатием?

Это настоящее сообщение, которое я получил:

vagrant @ homestead : ~ / Projects / l5b.dev $ пряжа
пряжа установить v0.27.5
[1/4] Обработка пакетов ...
[2/4] Получение пакетов ...
error Произошла непредвиденная ошибка: " https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.0.tgz : Запрос не выполнен \" 404 Not Found \ ""

Снова попытался установить репозиторий, представляющий собой приложение Laravel ( шаги установки ). npm отлично работал как на localhost (vagrant), так и в Интернете, но yarn выводит эту ошибку.

Что ж, дальше искать не надо:

image

Не повезло и с npm:

image

Возможно, организация webpack решила выпустить этот выпуск после того, как вы его установили.

Хм, npm install завершил установку, хотя предупреждений куча. Но предупреждения - это не ошибки.
Я все еще пытаюсь поймать эти JS-вещи. Я стоял в эпоху jQuery, и мне нужно ускориться.

Хорошо, успокойся. Это было дело самого приложения, которое я пытался использовать.

Я не имел ввиду без обид. Извините, если что-то было взято.

Кстати, разве не должно быть достаточно package.json для сборки?

Вы можете прочитать это: https://www.sitepoint.com/yarn-vs-npm/ и позвольте мне выделить самый интересный абзац:

Файл yarn.lock
В package.json, файле, где и npm, и Yarn отслеживают зависимости проекта, номера версий не всегда точны. Вместо этого вы можете определить ряд версий. Таким образом, вы можете выбрать конкретную основную и вспомогательную версию пакета, но разрешить npm установить последний патч, который может исправить некоторые ошибки.
В идеальном мире семантического управления версиями исправленные выпуски не будут содержать критических изменений. Это, к сожалению, не всегда так. Стратегия, используемая npm, может привести к тому, что на двух машинах будет установлен один и тот же файл package.json, на которых будут установлены разные версии пакета, что может привести к ошибкам.
Чтобы избежать несовпадения версий пакета, точная установленная версия закреплена в файле блокировки. Каждый раз, когда добавляется модуль, Yarn создает (или обновляет) файл yarn.lock. Таким образом, вы можете гарантировать, что другой компьютер установит точно такой же пакет, при этом диапазон разрешенных версий по-прежнему определен в package.json.
В npm команда npm shrinkwrap также генерирует файл блокировки, и npm install читает этот файл перед чтением package.json, подобно тому, как Yarn сначала читает yarn.lock. Важное отличие здесь в том, что Yarn всегда создает и обновляет yarn.lock, тогда как npm не создает его по умолчанию и обновляет только npm-shrinkwrap.json, когда он существует.

Поэтому, если вы не заботитесь о закреплении версий, чтобы избежать "случайных" сборок, вместо удаления файла yarn.lock и запуска yarn вы должны оставить файл на месте и использовать npm install (игнорирует файл yarn.lock )

Ваш проект где-то в сети?

@Tpojka попробуйте удалить yarn.lock и node_modules локально (!), А затем запустите yarn локально. После этого зафиксируйте новый файл yarn.lock и посмотрите, поможет ли это.

Предыстория: это изменит закрепленную версию вашего отсутствующего пакета на последнюю, которая все еще совместима с диапазоном версий, определенным в package.json . Если тот, который в настоящее время закреплен в вашем yarn.lock не был опубликован, новый должен быть там.

Да, я уже давно использую yarn 0.18 из-за этой странной проблемы и могу подтвердить, что одноразовое удаление-воссоздание yarn.lock, похоже, решает проблему. Так или иначе, насколько я могу судить, это связано с файлами блокировки старой версии пряжи.

@sottbessler, к сожалению, кажется случайным. Иногда удаление yarn.lock работает, иногда нет. Происходит что-то еще странное. Он может разрешить пакет (так как он знает, какую версию загрузить), но 404-е файлы tar.

Столкнулся с этой проблемой, работал на моей машине Mac, но не на сервере.

Работает в yarn v1.0.1 (для нас локально, на CI и в пакете сборки Heroku), следуя https://github.com/yarnpkg/yarn/issues/3765#issuecomment -327890328 и https://github.com/yarnpkg / yarn / issues / 3765 # issuecomment -328207599.

always-auth=true
https://registry.npmjs.org/:_authToken=${NPM_TOKEN}

У меня все еще проблема.

Я пробовал добавить always-auth=true в свой .npmrc файл. Я также пробовал добавить явное https: перед //registry.npmjs.org/:_authToken=... . Это тоже не имело значения.

Все отлично работает с Yarn 0.27.3 , но все, что 1.0.0 +, похоже, имеет эту проблему (сейчас я использую yarn 1.2.1 ).

Я что-то упустил?

Попробуйте удалить все из .npmrc кроме //registry.npmjs.org/:_authToken=${NPM_TOKEN} . Это единственное, что у нас постоянно работает с нашими частными пакетами с @ -scoped (Unix / Windows / OSX) на yarn 1.0.0+.

@pleunv Спасибо! Это сработало для меня, используя Yarn 1.3.2 , но только если я также выполнил эту команду:

yarn config set registry https://registry.npmjs.org

У меня сложилось впечатление, что реестр Yarn по умолчанию был просто прокси для npmjs.org. Поэтому я не уверен, почему это должно быть необходимо, но это абсолютно точно в моем случае (проверено с и без).

Не могу поверить, что у других людей это не вызывает проблем. Я бы подумал, что каждый проект без открытого исходного кода может споткнуться об этом?!?

Я тестировал это только при развертывании ( т.е. внутри Dockerfile при сборке). Я скоро опробую это на своей машине разработчика (мои попытки понять это сегодня утром стоили мне больше часа 😢).

@pleunv @xogeny не могли бы вы предоставить нам небольшой пример, чтобы мы могли исправить эту проблему раз и навсегда? Нам это очень сложно отследить :(

@BYK, если я чего-то не yarn нам нужно будет поделиться каким-то токеном частного доступа. В лучшем случае это кажется неловким.

Похоже, что лучшим подходом для самого проекта Yarn было бы создание некоторых частных репозиториев (через дешевую минимальную учетную запись организации), чтобы вы могли выполнять эти тесты, предоставляя токен доступа через переменную среды через CircleCI или локальный разработчик / среда тестирования. Таким образом, это будет ваш токен, и вам не нужно будет никому его делить.

Но я открыт для других предложений. Я просто не знаю, как все организовать.

Да, частный прицел затрудняет предоставление репродукции. В любом случае, у нас это было в нашем CI с любым пакетом с частной областью действия в контейнере докеров nodeJS по умолчанию.

@BYK Я могу настроить пробную версию репозитория Bintray npm с сопутствующим репро-репозиторием и отправить вам ключ доступа по почте, если это поможет.

@SpainTrain Большое спасибо, установка

always-auth=true
<strong i="7">@scope</strong>:always-auth=true

вверху .npmrc исправил с помощью yarn v1.3.2

В моей ситуации проблема исчезла, когда я обновил yarn.lock для разрешения частных пакетов из npmjs.com вместо yarnpkg.com вот так -

"@myco/pak1@>=0.0.8":
  version "0.0.11"
  resolved "https://registry.yarnpkg.com/@myco/pak1/-/pak1-0.0.11.tgz#8b5c53bd7378d7f00554fd4813ad9d332d0d87dc"
                             ^^^^^^^ change this
  resolved "https://registry.npmjs.com/@myco/pak1/-/pak1-0.0.11.tgz#8b5c53bd7378d7f00554fd4813ad9d332d0d87dc"
  dependencies:
    lodash "4.*"

Ни одно из этих решений не помогло мне. Мы даже не используем частный пакет, а просто публичный форк общедоступного пакета. Изменен yarn.lock для ссылки на npmjs.com, используется параметр реестра yarn перед шагом установки yarn.

CircleCI по какой-то причине просто периодически получает 404 по URL-адресам github "codeload" на этапе установки пряжи.

Я также могу подтвердить, что после запуска yarn config set registry https://registry.npmjs.org предложенного @xogeny , yarn add @org/priv-module больше не 404 и правильно устанавливает пакет.

Однако вот что интересно: я вернулся к исходному реестру ( yarn config set registry https://registry.yarnpkg.com ), снова сделал rm -rf *; yarn cache clean и yarn add @org/priv-module , я больше не мог воспроизвести 404, т.е. он установил правильно. Я почти уверен, что здесь не сумасшедший - yarn add @org/priv-module сделал 404 в первый раз.

Как именно registry.yarnpkg.com proxy registry.npmjs.org ? Похоже, что какой-то кеш заполнен после успешной выборки?

Я использую v1.3.4 на macOS 10.13.2, а .npmrc - это просто 'ol //registry.npmjs.org/:_authToken={auth token}

Здесь та же проблема. Вот журнал TravisCI

$ node --version
v8.9.4
$ npm --version
5.6.0
$ nvm --version
0.33.8
before_install.1
0.42s$ yarn config set registry https://registry.npmjs.org
yarn config v1.3.2
success Set "registry" to "https://registry.npmjs.org".
before_install.2
0.43s$ yarn cache clean
yarn cache v1.3.2
success Cleared cache.
$ yarn
yarn install v1.3.2
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/home/travis/build/grundiss/contenter/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Забавно: локально все работает нормально.

просто для завершения, вот пара неудачных сборок circleci, и пакет 404 не всегда одинаков:

https://circleci.com/gh/EnoahNetzach/gnodsidfjgi/5
https://circleci.com/gh/EnoahNetzach/gnodsidfjgi/7

Я (надеюсь) исправил свою проблему, выполнив эту инструкцию и создав офлайн-зеркало, но это, конечно, не тот путь, которым может пойти каждый.

Вау. Оказалось, что моя проблема не является частью этой проблемы, а больше похожа на часть более глобальной вещи: https://github.com/floatdrop/pinkie/issues/18

Черт, теперь и у нас возникла эта проблема. Частный пакет. Случайное воспроизведение - иногда работает (с некоторыми версиями), иногда нет.

Увидев эту ошибку в нашем проекте. Это странно, поскольку я не получаю 404 при нажатии URL вручную:

Trace:
  Error: https://codeload.github.com/types/npm-v8flags/tar.gz/de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d: Request failed "404 Not Found"
      at Request.handleRequestError (C:\Users\stewx\AppData\Roaming\nvm\v6.10.0\node_modules\yarn\lib\fetchers\tarball-fetcher.js:203:20)
      at emitOne (events.js:96:13)
      at Request.emit (events.js:188:7)
      at Request.onRequestResponse (C:\Users\stewx\AppData\Roaming\nvm\v6.10.0\node_modules\yarn\node_modules\request\request.js:1068:10)
      at emitOne (events.js:96:13)
      at ClientRequest.emit (events.js:188:7)
      at HTTPParser.parserOnIncomingClient (_http_client.js:474:21)
      at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
      at TLSSocket.socketOnData (_http_client.js:363:20)
      at emitOne (events.js:96:13)

Мы решили все подобные ошибки, немного изменив наши URL-адреса. Избегайте tar / gz и используйте tarball, то есть:

"package_name":"https://github.com/somebody/package_name/tarball/master"

Если ваш пакет размещен на частном сервере npmjs.org, удаление строки <strong i="5">@scope</strong>:registry=https://registry.npmjs.org/ из .npmrc сработало для нас - предположительно, это связано с проблемами с yarnpkg, являющимся CDN для npmjs.org

Я выставляю это сегодня
error An unexpected error occurred: “https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.10.tgz: Request failed \“404 Not Found\“”.
Не частное репо :(

+1 для меня. Начал испытывать это и сегодня. Пробуем установить webpack на нашем CI.

То же самое и здесь. Пробовал последний

error An unexpected error occurred: "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.1.1.tgz: Request failed \"404 Not Found\"".

Здесь обсуждается https://github.com/yarnpkg/yarn/issues/5530

В моем случае у меня был локальный .npmrc который определял частный реестр для определенной области, все, что мне нужно было добавить, это registry=https://registry.npmjs.org/ в верхней части файла. В результате чего:

# .npmrc
registry=https://registry.npmjs.org/

<strong i="8">@acme</strong>:registry=https://acme.jfrog.io/acme/api/npm/npm/
//acme.jfrog.io/acme/api/npm/npm/:_auth=YYYYYYYYYYYYYYYYYYYYYYYYYY
//acme.jfrog.io/acme/api/npm/npm/:username=username
//acme.jfrog.io/acme/api/npm/npm/:[email protected]
//acme.jfrog.io/acme/api/npm/npm/:always-auth=true

Работая с CircleCI, также было 404 с установкой пряжи.

удаление yarn.lock

Это сработало для меня. Покопавшись еще немного, обнаружил, что в замке пряжи были неправильные URL-адреса.

Блокировка пряжи использовалась с помощью registry.yarnpkg.com, который был 404 на CircleCI (не знаю, почему это работало локально).

Получившийся конфиг, который сделал свое дело:

- run: echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- run: yarn config set registry https://registry.npmjs.org/
- run: yarn

Спасибо всем, я тоже решил эту проблему, удалив yarn.lock.

Для меня неудачной командой была yarn add gatsby-plugin-react-helmet react-helmet .

Я смог запустить yarn upgrade (попробовал из любопытства), и тогда вышеуказанная команда сработала. Не уверен, почему это так, но я был бы признателен, если бы у кого-нибудь было объяснение.

возможно, npm необходим из-за отсутствия зависимости в репозиториях пряжи

такая же проблема с пряжей + материал CI +

yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/builds/springs-apps/flopanda/flopanda-front-end/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Была ли эта страница полезной?
0 / 5 - 0 рейтинги