Yarn: Se produjo un error inesperado: la solicitud falló \ "404 no encontrado \" ".

Creado en 21 feb. 2017  ·  89Comentarios  ·  Fuente: yarnpkg/yarn

¿Quieres solicitar una función o informar de un error ?
Insecto

¿Cuál es el comportamiento actual?
Tengo un paquete que solo depende de los módulos del repositorio npmjs . Son repositorios predominantemente públicos, sin embargo, 5 de ellos son repositorios privados cuyo ámbito utiliza un símbolo @. Nuevamente, estos están alojados en npmjs .

Hasta hace algún tiempo todos ellos descargarían una instalación sin problema. Sin embargo, algo ha cambiado y ahora uno de ellos no se instala con el siguiente error:

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\"".

Como dije anteriormente, los otros repositorios privados (todos dentro del mismo @ alcance) se descargan e instalan según lo previsto. Esto me lleva a pensar que esto no es un problema de autenticación.

Mi .npmrc que está en la raíz de mi proyecto y contiene mi _authToken ve así:

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

Ya he completado las siguientes actividades:

1) Iniciar sesión usando npm login nuevamente para obtener un accessToken nuevo
2) Asegurándome de que el nombre del paquete sea correcto (lo copié del sitio web de npm solo para estar seguro)
3) Ejecutando rm -rf node_modules && rm yarn.lock && yarn cache clean
4) Eliminando el paquete ofensivo de mi package.json e intentando re yarn add
5) Intentar ejecutar el comando equivalente npm install --save . Esto funcionó.

Si el comportamiento actual es un error, proporcione los pasos para reproducirlo.
Como no estoy seguro de la causa, no estoy seguro de cómo reproducirme. Estoy dispuesto a discutir más sobre Discord o en comentarios sobre este tema.

¿Cuál es el comportamiento esperado?
Espero que Yarn instale todos mis repositorios privados desde npmjs

Por favor, mencione su versión de node.js, yarn y sistema operativo.
Tomado de yarn-error.log

Yarn version: 
  0.20.3

Node version: 
  6.9.5

Platform: 
  darwin x64
needs-discussion triaged

Comentario más útil

Gracias a todos, yo también resolví este problema eliminando yarn.lock.

Todos 89 comentarios

Aparte, el paquete claramente existe y yarn claramente está accediendo al paquete de alguna manera porque la URL contiene el número de versión que está intentando recuperar.

Después de ejecutar algunas pruebas más, descubrí que el mismo paquete no se puede instalar desde otros repositorios que lo requieren cuando se usa Yarn . Sin embargo, funciona bien cuando se usa npm .

Esto me lleva a pensar que no es la configuración específica de mi repositorio. ¿Podría tener algo que ver con el nombre del paquete que se activa Yarn , o la codificación de la URL o algo así?

Aferrándome a las pajitas aquí, pero con suerte esto podría llevar a alguien en la dirección correcta

Arreglé esto: simplemente volví a publicar el paquete ofensivo con un nuevo número de versión.

No tengo idea de por qué eso lo solucionó.

Dejaré esto aquí en caso de que ayude a depurar.

Estoy experimentando el mismo problema. Esto parece suceder al azar y, a menudo, se resuelve simplemente reintentando la compilación.

También estamos experimentando exactamente el mismo problema.
Algunos módulos privados funcionan, otros no; todos iguales @scope.

Acabamos de experimentar el mismo problema. Un poco más de contexto aquí con la esperanza de que pueda ayudar

  • Estábamos ejecutando hilo en nuestro CI (Drone), que se ejecuta en contenedores Docker efímeros [Alpine Linux]
  • El problema ocurrió en solo UNO de nuestros edificios de servicios, mientras que nada salió mal con los otros servicios, a pesar de que tienen exactamente el mismo árbol de dependencia (!)
  • una instalación manual en mi Mac para el mismo repositorio no produjo ningún problema (!)
  • el problema se limitó a un solo paquete privado

Como se mencionó anteriormente como solución alternativa, la publicación de una nueva versión del paquete resolvió el problema.

Desafortunadamente, no pude obtener un yarn-error.log detallado ya que los contenedores se destruyen inmediatamente después de una compilación fallida. Si alguien más tiene este problema, ¿podría intentarlo de nuevo con una instalación verbose y lanzar el inicio de sesión aquí?

Veo el mismo problema. Estoy usando una imagen de Docker en circleci 2.0 y tengo algunos problemas no relacionados que estoy depurando localmente (diferencia de compilación en cci vs local).

  • cuando yarn en la máquina host OSX, todo funciona.
  • cuando yarn en el contenedor (Ubuntu), aparece el error .
  • cuando yarn en el contenedor ^^ (Ubuntu) que se ejecuta en la infraestructura circleci 2.0, funciona.

He configurado .npmrc etc. Es realmente un rasguño que no me funciona en un contenedor que se ejecuta localmente.

Verbose no me proporcionó ninguna información que pueda detectar:

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

Lo mismo aquí, funciona localmente en OSX pero no en el contenedor CircleCI (circleci 1.0).

Intenté yarn cache clean - luego, un paquete diferente falló en la instalación.

Sucede tanto con yarn 0.18.1 como con 0.21.3, entonces, ¿tal vez algo cambió en la configuración del registro yarnpkg? O, dado que creo que todos en los comentarios aquí están usando CircleCI en el escenario del problema, ¿es un problema con la configuración de CircleCI?

Entonces, creemos que hemos logrado resolver el problema; estaría interesado en ver si funciona para otros:
Tuvimos que hacer un pequeño cambio a .npmrc que tiene poco sentido por qué esto funciona:

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

Lo que hay que tener en cuenta es que necesitábamos tanto un registro normal como uno para nuestro registro de ámbito privado. Solo asegúrate de cambiar @ourscope por el tuyo.

Avísame si esto ayuda a alguien.

@rogchap acabo de probar su solución pero sigo viendo el mismo problema que antes :(

tenemos un guión en el nombre de nuestro alcance, ¿tal vez ese podría ser el culpable?

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

@rogchap esta solución no tuvo ningún efecto en nuestra situación.

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/

Confirmado que falla con 0.20.4 y 0.21.3 . Dado que esto también ha funcionado para mí sin problemas, tengo curiosidad por saber si algo ha cambiado en el lado del servidor para causar esto. Esto ciertamente parece ahora un bug .

  • Acabo de implementar nuevas versiones de los módulos de alcance 'ofensivos' y no hizo ninguna diferencia, el mismo error.
  • Ejecuté npm install y no tengo problemas para recuperar los módulos en el entorno problemático

Entonces, no arreglado para mí ... de nuevo.

Otro módulo privado me dio el mensaje 404, a pesar de que parece resolver la versión correcta (debe estar leyendo algo correctamente en alguna parte), y parece intentar descargar la misma URL tar que NPM.

¡Esta vez ELIMINÉ los registros (excepto el de autenticación) en .npmrc para que funcione!

No hay consistencia en absoluto, "jugar" aleatoriamente con .npmrc parece funcionar temporalmente.

Estoy tratando de promover Yarn, pero todos los ingenieros de nuestra empresa (con razón) dicen que Yarn "no es estable", "no se puede usar", "no es confiable", "no funciona con módulos privados", "falla en el Servidor CI ", etc.

Me pregunto si el registro privado de NPM está haciendo algo "raro" con el agente de usuario. <- Conjetura salvaje.

Para comprender mejor esto, es posible que necesitemos algunos aportes de los colaboradores principales. @bestander , ¿alguna idea?

No usamos mucho paquetes privados, por lo que esta función tiene menos interés.
Afaik, la comunidad solucionó la mayoría de los problemas.
Esta es una gran oportunidad para intentar solucionarlo.
No creo que el registro npm haga algo con la respuesta basada en UA, lo más probable es que el token no se pase en absoluto por alguna razón.

Bien, bifurqué hilo y jugueteé un poco. Parece que pierde el token antes de que recupere el tarball o más bien después de que se envíe la primera solicitud ...

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\"".

Cuando establezco explícitamente el encabezado authorization en npm-registry.js antes de que se envíe la solicitud, todo funciona bien. Así que parece que hay algún error en el hilo y no en el lado del servidor.

EDITAR:

Bien, luego de una inspección más detallada, este problema ocurre porque la verificación de si el encabezado de autorización debe establecerse devuelve falso en npm-registry.js -> https://github.com/yarnpkg/yarn/pull/2598/files#diff -b053bee294c216269844e5874039b6caR62
Y esto, a su vez, sucede porque compara el proxy de registro yarnpkg con el registro npmjs.

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

Bien, entonces descubrí cómo solucionar este problema sin cambiar el código fuente de los hilos.
Es básicamente lo que publicó @rogchap pero (en nuestro caso) en la otra dirección:

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

O, alternativamente, deshacerse por completo del registro:

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

Esto parece funcionar porque entonces yarn no usa registros diferentes para el paquete en cuestión para obtener información y archivos tar. Sin embargo, no estoy seguro de por qué hilo mezcla estos dos y creo que tal vez la verificación del token de autenticación podría cambiarse / mejorarse de alguna manera.

¿Cuál es el próximo paso?
¿Documentar la solución alternativa o realizar cambios en Yarn?

He estado probando todas las combinaciones posibles durante las últimas horas y creo que es seguro decir que no existe una solución alternativa confiable para este problema. @flipace ¿ alguna idea si esto es algo que se pueda arreglar fácilmente? Ninguno de tus métodos me funciona :(.

En realidad, tacha eso, lo hace. Eliminar las asignaciones de registro y solo mantener la línea con el token de autenticación parece funcionar. Malditos errores tipográficos. ¡Gracias @flipace!

@bestander intentaré hacer un PR en los próximos días, el comportamiento del hilo en este caso no es el que debería ser. ¡Gracias @pleunv por confirmar que la solución alternativa también funciona para usted!

Desafortunadamente, la solución alternativa no me funciona 😿

@willrstern, ¿ podrías publicar tu .npmrc tal vez?

Ah, eliminar .yarnrc funcionó para mí. Los contenidos fueron:

# 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>

tenga en cuenta que el registro npmjs.org era algo que había agregado al solucionar problemas de por qué no funcionaba, por lo que no era la configuración ofensiva.

@flipace .npmrc fue todo tipo de soluciones anteriores, incluida la línea de solo token.

~ Ninguna de estas soluciones funcionó para mí. ~

En realidad, funciona si pongo esto en mi archivo docker:

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

El alcance en cuestión para mí es @satoshipay

Un compañero de trabajo y yo tuvimos este problema ... después de instalar el nodo v7.7.4 y volver a iniciar sesión en npm a través de npm login , todo funcionó.

@Levino ¿Puedes ejecutar yarn config list y echar un vistazo si el hilo está recogiendo el archivo .npmrc? En # 521 @BohdanTkachenko resolvió el problema de manera similar. Al menos esto también me funciona :)

Solo un recordatorio de que las relaciones públicas de la comunidad son bienvenidas, nadie en el equipo central está investigando esto actualmente.

@bestander ¿Hay algún
Nuestra solución actual es volver a usar npm 😞

En algún lugar de package-resolver o package-fetcher.

El martes 16 de mayo de 2017 a las 06:29, Roger Chapman [email protected]
escribió:

@bestander https://github.com/bestander ¿Hay alguna sugerencia del
equipo central, ¿dónde pueden estar los problemas?
Nuestra solución actual es volver a usar npm 😞

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/yarnpkg/yarn/issues/2738#issuecomment-301679399 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/ACBdWMCFoI3uXa_ROrI-ZqwvTGyJjUrhks5r6TQygaJpZM4MGvow
.

Para todos aquellos que tengan este problema, busque un archivo .npmrc en el directorio de su proyecto, así como en todos los directorios principales que se encuentran encima. Si existe, anulará el archivo .npmrc en su directorio de inicio. Un miembro de mi equipo se encontró con este problema. Tenía un token diferente en un archivo .npmrc diferente.

También tengo otro lugar donde buscar. Tenemos estos problemas generalmente con yarn install y el uso de paquetes privados con alcance en CI . Ayer volví a tener el problema. El miembro del equipo que creó el nuevo servicio no había configurado registry.npmjs.org como registro para el alcance en su .npmrc local. Esto llevó al hecho de que yarn.lock tenía enlaces registry.yarnpkg.com para todos los paquetes, incluidos los de ámbito. Curiosamente, funcionó a nivel local pero rompió en CI. Así que eliminé el yarn.lock y lo recreé en mi máquina, donde configuré registry.npmjs.org para el alcance en mi archivo .npmrc. Ahora el archivo yarn.lock solo tenía enlaces a registry.npmjs.org . Empujé el nuevo hilo.lock y CI pasó sin problemas.

¡Gracias!

También tener .npmrc en el cwd nos ayudó en gitlab-ci.

Tengo el mismo problema en un contenedor Docker + yarn 0.26.1 (la instalación funciona bien localmente en mi Mac).

.npmrc es:

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

NPM_TOKEN está configurado correctamente. Obteniendo el siguiente error:

====>> 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

También probé con lo siguiente .npmrc :

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

No estoy seguro de si eso es relevante, pero mis listas de yarn.lock (se resuelve como https://registry.yarnpkg.com/... lugar de 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"

actualización : si elimino yarn.lock , la instalación se realiza correctamente.
actualización : parece que la instalación de [email protected] solucionó mi problema (creo que estaba usando [email protected] antes)

@olalonde tuve el mismo error. Establecer el registro en mi máquina en https://registry.npmjs.org/ y crear el yarn.lock resolvió el problema.

Hola,

Como tuve el mismo problema y logré resolverlo, voy a compartir mi experiencia.
Probé todas las soluciones alternativas random , pero como dijo @rogchap , volver a npm funcionó para mí.

Después de una instalación exitosa con npm yarn install dejó de dar 404 Not Found .

No tengo ni idea de lo que pasó y cómo se solucionó.
Estaré atento a este problema. Espero que alguien resuelva este misterio.

Mejor,
pgergov

Este problema se produce de forma aleatoria en las compilaciones de Codeship. ¿Algún progreso o idea que está causando eso?

Hola chicos, solo quería compartir con ustedes que en 0.27.5 el problema está resuelto. Para referencia: https://github.com/yarnpkg/yarn/issues/3765
Este problema parece que se puede cerrar ahora.

Gracias por el seguimiento, @pgergov

También tuve este problema hoy. Cambié el registro a la URL tarball de github. No pude encontrar cuál era la URL de npmjs, así que probé la de Github encontrada aquí.
https://github.com/{USER}/{REPO}/tarball/{BRANCH}

Solo pongo esto aquí en caso de que alguien tenga el mismo problema que yo.

Estoy en la última versión 0.27.5. También experimento el error de hilo Solicitud fallida 404 No encontrado . La degradación de la versión a 0.27.3 funciona.

@panalbish puede probar 0.28.2 o intentar actualizar su token de autenticación para ver si funciona.

@panalbish Gracias por la sugerencia. La degradación a 0.27.3 funcionó.
@BYK Probé 0.28.2 y 0.28.4, ambos fallaron. Recibo un error cuando intento descargar el código de 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\"".

Si tuviera que adivinar, podría estar enviando tokens de autenticación al dominio github causando un 404. Intentaré investigar más esta noche.

Parece que este problema cubre el problema:
https://github.com/yarnpkg/yarn/issues/3907

Duplicado de # 3907.

Parece que eliminar yarn.lock antes de ejecutar el comando yarn (o yarn install ) puede solucionar el problema por mí.

Parece que eliminar yarn.lock antes de ejecutar el comando yarn (o yarn install) puede solucionar el problema por mí.

Y luego deberías dejar de usar hilo por completo. El archivo yarn.lock es el archivo que garantiza "construcciones reproducibles". Nunca querrás borrar eso.

OK cálmate. Dependía de la aplicación misma que estaba tratando de usar.
Por cierto, ¿no debería ser suficiente package.json para la propia construcción?

Técnicamente sí. El archivo de bloqueo garantiza que usará las mismas versiones que todos los demás en el equipo. Si por alguna razón no le importa, puede eliminar el archivo de bloqueo y Yarn creará uno nuevo desde cero.

Dicho esto, es curioso que haya resuelto su problema, ya que el que estamos rastreando aquí está relacionado con un parámetro de configuración. ¿Quizás su archivo de bloqueo hacía referencia a una URL que se había eliminado desde entonces? ¿Un compromiso de git que se ha eliminado mediante un empuje forzado, tal vez?

Este es el mensaje real que tengo:

vagrant @ homestead : ~ / Projects / l5b.dev $ hilo
instalación de hilo v0.27.5
[1/4] Resolviendo paquetes ...
[2/4] Obteniendo paquetes ...
error Se produjo un error inesperado: " https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.0.tgz : Solicitud fallida \" 404 no encontrado \ "

Intenté nuevamente instalar el repositorio que es la aplicación Laravel ( Pasos de instalación ). npm funcionó bien tanto en localhost (vagabundo) como en línea, pero el hilo produjo ese error.

Bueno, no busques más:

image

Tampoco tuve suerte en npm:

image

Quizás la organización del paquete web decidió deshacer esta versión después de que la instaló.

Hm, npm install finalizó la instalación aunque hay un montón de advertencias. Pero las advertencias no son errores.
Todavía estoy tratando de atrapar estas cosas JS. Me paré en la era jQuery y necesito acelerar.

OK cálmate. Dependía de la aplicación misma que estaba tratando de usar.

No quise ofenderme. Lamento si se llevaron alguno.

Por cierto, ¿no debería el package.json ser suficiente para construirse?

Es posible que desee leer esto: https://www.sitepoint.com/yarn-vs-npm/ y permítame resaltar el párrafo más interesante:

El archivo yarn.lock
En package.json, el archivo donde tanto npm como Yarn realizan un seguimiento de las dependencias del proyecto, los números de versión no siempre son exactos. En su lugar, puede definir una gama de versiones. De esta manera, puede elegir una versión mayor y menor específica de un paquete, pero permita que npm instale el último parche que podría corregir algunos errores.
En un mundo ideal de versiones semánticas, las versiones parcheadas no incluirán cambios importantes. Esto, lamentablemente, no siempre es cierto. La estrategia empleada por npm puede resultar en dos máquinas con el mismo archivo package.json, con diferentes versiones de un paquete instaladas, posiblemente introduciendo errores.
Para evitar que la versión del paquete no coincida, una versión instalada exacta se fija en un archivo de bloqueo. Cada vez que se agrega un módulo, Yarn crea (o actualiza) un archivo yarn.lock. De esta manera, puede garantizar que otra máquina instale exactamente el mismo paquete, sin dejar de tener un rango de versiones permitidas definidas en package.json.
En npm, el comando npm shrinkwrap también genera un archivo de bloqueo, y npm install lee ese archivo antes de leer package.json, al igual que Yarn lee primero yarn.lock. La diferencia importante aquí es que Yarn siempre crea y actualiza yarn.lock, mientras que npm no crea uno por defecto y solo actualiza npm-shrinkwrap.json cuando existe.

Por lo tanto, si no le importa definir versiones para evitar compilaciones "aleatorias", en lugar de eliminar el archivo yarn.lock y ejecutar yarn , debe dejar el archivo en su lugar y usar npm install (que ignorará el archivo yarn.lock )

¿Está tu proyecto online en algún lugar?

@Tpojka intenta eliminar el archivo yarn.lock y node_modules localmente (!) Y luego ejecuta yarn localmente. Luego confirme el nuevo archivo yarn.lock y vea si eso ayuda

Antecedentes: esto cambiará la versión anclada de su paquete faltante a la última que aún es compatible con el rango de versiones definido en package.json . Si el que está anclado actualmente en su yarn.lock se ha publicado, el nuevo debería estar allí.

Sí, he estado usando yarn 0.18 durante mucho tiempo debido a este extraño problema y puedo confirmar que una única eliminación-recreación de yarn.lock parece resolver el problema. Entonces, de alguna manera, está relacionado con los archivos de bloqueo de la versión anterior de hilo, por lo que puedo decir.

@sottbessler, lamentablemente, esto parece aleatorio. A veces, la eliminación del hilo funciona, a veces no. Está sucediendo algo más extraño. Puede resolver el paquete (ya que sabe qué versión descargar) pero los 404 del archivo tar.

Enfrenté este problema, trabajé en mi máquina Mac, pero no en el servidor.

Funciona en yarn v1.0.1 (para nosotros localmente, en CI y en Heroku buildpack) siguiendo https://github.com/yarnpkg/yarn/issues/3765#issuecomment -327890328 y https://github.com/yarnpkg / yarn / issues / 3765 # issuecomment -328207599.

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

Todavía tengo un problema aquí.

Intenté agregar always-auth=true a mi archivo .npmrc . También intenté agregar un https: explícito delante de //registry.npmjs.org/:_authToken=... . Eso tampoco hizo ninguna diferencia.

Las cosas funcionan muy bien para Yarn 0.27.3 , pero cualquier cosa 1.0.0 + parece tener este problema (actualmente estoy usando yarn 1.2.1 ).

¿Me estoy perdiendo de algo?

Intente eliminar todo de .npmrc excepto //registry.npmjs.org/:_authToken=${NPM_TOKEN} . Esto es lo único que nos funciona consistentemente con nuestros paquetes privados @ -scoped (Unix / Windows / OSX) en yarn 1.0.0+.

@pleunv ¡Gracias! Eso funcionó para mí usando Yarn 1.3.2 , pero solo si ejecuté este comando también:

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

Mi impresión fue que el registro de Yarn predeterminado era solo un proxy para npmjs.org. Entonces no estoy seguro de por qué esto debería ser necesario, pero en mi caso lo es absolutamente (probado con y sin).

No puedo creer que más gente no tenga problemas con esto. ¿Pensé que todos los proyectos que no son de código abierto se tropezarían con esto?

Solo he probado esto haciendo implementaciones ( es decir, dentro de un Dockerfile haciendo una compilación). Lo intentaré en mi máquina de desarrollo pronto (mis esfuerzos por resolver esto esta mañana me costaron más de una hora 😢).

@pleunv @xogeny, ¿ puede proporcionarnos un pequeño estuche de reproducción para que podamos solucionar este problema de una vez por todas? Es muy difícil rastrear esto para nosotros :(

@BYK a menos que me falte algo, cualquier caso de prueba de este tipo requeriría, por necesidad, un repositorio privado y para probar con éxito yarn tendríamos que compartir un token de acceso privado de algún tipo. Eso parece incómodo en el mejor de los casos.

Parece que el mejor enfoque sería que el propio proyecto Yarn estableciera algunos repositorios privados (a través de una cuenta organizativa mínima y barata) para que pueda hacer estas pruebas proporcionando un token de acceso a través de una variable de entorno a través de CircleCI o su desarrollador local / entorno de prueba. De esa manera sería tu token y no necesitarías compartirlo con nadie.

Pero estoy abierto a otras sugerencias. Simplemente no sé muy bien cómo organizar las cosas.

Sí, el visor privado hace que sea un poco difícil proporcionarle una reproducción. De cualquier manera, teníamos esto en nuestro CI con cualquier paquete de ámbito privado, en el contenedor docker predeterminado nodeJS.

@BYK Puedo configurar una versión de prueba de un repositorio npm de Bintray con un repositorio de reproducción adjunto y enviarle la clave de acceso por correo si ayuda.

@SpainTrain Muchas gracias, configuración

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

en la parte superior de .npmrc arregló con yarn v1.3.2

En mi situación, el problema desapareció cuando actualicé yarn.lock para resolver paquetes privados de npmjs.com lugar de yarnpkg.com así -

"@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.*"

Ninguna de estas soluciones funcionó para mí. Ni siquiera estamos usando un paquete privado, solo una bifurcación pública de un paquete público. Se cambió yarn.lock para hacer referencia a npmjs.com, se usó la configuración de registro de yarn antes del paso de instalación de yarn.

CircleCI solo obtiene 404 de forma intermitente en las URL de github de "carga de código" durante el paso de instalación de hilo por alguna razón.

También puedo confirmar que después de ejecutar yarn config set registry https://registry.npmjs.org como sugirió @xogeny , yarn add @org/priv-module ya no 404 y se instala correctamente el paquete.

Sin embargo, aquí está la parte interesante: volví al registro original ( yarn config set registry https://registry.yarnpkg.com ), hice rm -rf *; yarn cache clean y yarn add @org/priv-module nuevamente, ya no pude reproducir el 404, es decir, instalé correctamente. Estoy bastante seguro de que no estoy loco aquí - yarn add @org/priv-module hizo 404 la primera vez.

¿Cómo exactamente registry.yarnpkg.com proxy registry.npmjs.org ? ¿Siente que se llenó un caché después de una búsqueda exitosa?

Estoy en v1.3.4 en macOS 10.13.2, y .npmrc es simplemente 'ol //registry.npmjs.org/:_authToken={auth token}

El mismo problema aquí. Aquí hay un registro de 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.

Lo curioso: localmente todo funciona bien.

solo para completar, aquí hay un par de compilaciones de circleci fallidas, y el paquete 404 no siempre es el mismo:

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

He (con suerte) solucionado mi problema siguiendo estas instrucciones y creando un espejo fuera de línea, pero ciertamente no es la forma en que nadie puede hacerlo.

Guau. Resultó que mi problema no era parte de este problema, sino más bien una parte de algo más global: https://github.com/floatdrop/pinkie/issues/18

Mierda, ahora también empezamos a tener este problema. Paquete de ámbito privado. Reproducción aleatoria: a veces funciona (con algunas versiones), a veces no.

Viendo este error en nuestro proyecto. Es extraño, ya que no obtengo un 404 cuando presiono la URL manualmente:

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)

Hemos resuelto todos los errores como estos cambiando un poco nuestras URL. Evite tar / gz y use tarball, es decir:

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

Si su paquete está alojado de forma privada en npmjs.org, eliminar la línea <strong i="5">@scope</strong>:registry=https://registry.npmjs.org/ de .npmrc funcionó para nosotros; presumiblemente, esto se debe a problemas con yarnpkg como CDN para npmjs.org

Estoy exhibiendo esto hoy
error An unexpected error occurred: “https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.10.tgz: Request failed \“404 Not Found\“”.
No es un repositorio privado :(

+1 para mí. También comencé a experimentarlo hoy. Intentando instalar el paquete web en nuestro CI.

Lo mismo aquí lol. Probado más reciente

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

En mi caso, tenía un .npmrc local que definía un registro privado para un ámbito específico, todo lo que tenía que agregar era registry=https://registry.npmjs.org/ en la parte superior del archivo. Resultando en:

# .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

Trabajar con CircleCI también tenía 404 con instalación de hilo.

quitar hilo.lock

Esto funcionó para mí. Investigando un poco más, descubrió que había direcciones URL incorrectas en el bloqueo de hilo.

El bloqueo de hilo estaba usando registry.yarnpkg.com que se 404 en CircleCI (no tengo idea de por qué funcionaba localmente).

La configuración resultante que hizo el truco:

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

Gracias a todos, yo también resolví este problema eliminando yarn.lock.

Para mí, el comando fallido fue yarn add gatsby-plugin-react-helmet react-helmet .

Pude ejecutar un yarn upgrade (probé por curiosidad), y luego funcionó el comando anterior. No estoy seguro de por qué es así, pero estaría agradecido si alguien tuviera una explicación.

tal vez se necesite npm debido a que la dependencia no está disponible en los repositorios de hilos

tiene el mismo problema con hilo + material 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.
¿Fue útil esta página
0 / 5 - 0 calificaciones