Yarn: No se pudieron instalar las dependencias en el espacio de trabajo: se esperaba que existiera el paquete del espacio de trabajo

Creado en 8 ene. 2020  ·  56Comentarios  ·  Fuente: yarnpkg/yarn

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

¿Cuál es el comportamiento actual?
yarn install falla con:

error An unexpected error occurred: "expected workspace package to exist for \"@babel/template\"".

El error comenzó a ocurrir después de actualizar el hilo a 1.19 y aún persiste en la última versión estable 1.21.1

Se pueden observar errores similares en # 7797 y # 7734

Si el comportamiento actual es un error, proporcione los pasos para reproducirlo.
El error se puede reproducir al instalar dependencias en https://github.com/callstack/haul

  1. git clone [email protected]:callstack/haul.git
  2. cd haul
  3. yarn install

¿Cuál es el comportamiento esperado?

yarn install debería instalar las dependencias correctamente.

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

  • Nodo: 12.14.1 / 13 (reproducible en ambos)
  • hilo: 1.21.1
  • SO: macOS 10.15.2

Comentario más útil

yarn policies set-version 1.18.0 funciona para mí: ¡el hilo cambiará automáticamente a esta versión solo para el proyecto! ¡tan limpio!
https://classic.yarnpkg.com/en/docs/cli/policies/

Todos 56 comentarios

Experimentar el mismo comportamiento al intentar agregar una dependencia a un paquete de espacio de trabajo:

yarn workspace @scope/mypackage add npm-package

error An unexpected error occurred: "expected workspace package to exist for \"@babel/highlight\"".

Detalles similares

Yarn version: 
  1.21.1

Node version: 
  10.17.0

Platform: 
  darwin x64

OS
  macOS 10.15.2

Experimentando el mismo problema con el nodo @ 10 :

An unexpected error occurred: "expected workspace package to exist for \"lru-cache\"".
Node: 10.15.3
yarn: 1.21.1
OS: macOS 10.15.1

Encontré una solución (temporal) ejecutando la función de

> yarn policies set-version 1.18.0

que básicamente significa:

Bajo el capó, el comando simplemente descargará la versión de un solo archivo del repositorio de GitHub, la almacenará dentro de su proyecto (dentro de la carpeta .yarn / releases), luego finalmente actualizará su configuración para apuntar al nuevo archivo (usando yarn-path ).

También viendo esto en Yarn 1.21.1. Puedo reproducir el error en mi repositorio cuando ejecuto yarn upgrade-interactive , _pero_ las versiones de carga manual en package.json todavía funcionan bien por alguna razón.

Encontrando esto también:

error An unexpected error occurred: "expected workspace package to exist for \"string-length\"".

Al intentar agregar una dependencia no relacionada dentro de una en mis paquetes de espacio de trabajo yarn add @reduxjs/toolkit . Agregar manualmente el dep a package.json seguido de yarn funciona.

Intenté yarn cache clean , y eliminé las carpetas yarn.lock y node_modules, sin cambios.

▶ yarn --version
1.21.1

Mismo error aquí:

$ yarn workspace @scope/web add ramda
error An unexpected error occurred: "expected workspace package to exist for \"chalk\"".
info If you think this is a bug, please open a bug report with the information provided in "/home/user/projects/web/apps/web/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
error Command failed.
Exit code: 1

Añadiendo yarn-error.log

Arguments: 
  /home/user/.nvm/versions/node/v10.13.0/bin/node /home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js add ramda

PATH: 
  /home/user/.yarn/bin:/home/user/.config/yarn/global/node_modules/.bin:/home/user/.yarn/bin:/home/user/.config/yarn/global/node_modules/.bin:/home/user/.nvm/versions/node/v10.13.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/user/Android/Sdk/emulator:/home/user/Android/Sdk/tools:/home/user/Android/Sdk/tools/bin:/home/user/Android/Sdk/platform-tools:/home/user/Android/Sdk/emulator:/home/user/Android/Sdk/tools:/home/user/Android/Sdk/tools/bin:/home/user/Android/Sdk/platform-tools

Yarn version: 
  1.21.1

Node version: 
  10.13.0

Platform: 
  linux x64

Trace: 
  Invariant Violation: expected workspace package to exist for "chalk"
      at invariant (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:2314:15)
      at _loop2 (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:94898:9)
      at PackageHoister.init (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:94957:19)
      at PackageLinker.getFlatHoistedTree (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:48743:20)
      at PackageLinker.<anonymous> (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:48754:27)
      at Generator.next (<anonymous>)
      at step (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:310:30)
      at /home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:328:14
      at new Promise (<anonymous>)
      at new F (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:5301:28)

npm manifest: 
{
   ...
}

He tenido los mismos problemas desde v1.19 .
yarn upgrade-interactive volvió inutilizable; No podría aplicar las actualizaciones de la versión.

Después de actualizar a v1.21 ya no puedo yarn install . Siempre arroja este error:

Se esperaba que el paquete de espacio de trabajo existiera para ...

La degradación a 1.18 solucionó ambos problemas.

Debo señalar que estos problemas solo ocurren en un proyecto, que es un monorepo que usa lerna y yarn workspaces .

Misma experiencia que @raspo
Ya no puedo instalar paquetes desde la línea de comando en mi espacio de trabajo habilitado monorepo.

No quería tener que degradar el hilo ya que proviene de mi administrador de paquetes, así que usé npx como una solución terrible.

npx [email protected] add your-deps-here

También obtenga este 1.17 a 1.22. Parece ser un puñado de paquetes, comenzando con istanbul-lib-instrument . Luego jest-snapshot luego cssstyle repetidamente.

Invariant Violation: expected workspace package to exist for "istanbul-lib-instrument"
    at invariant (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:2314:15)
    at _loop2 (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:94959:9)
    at PackageHoister.init (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:95018:19)
    at PackageLinker.getFlatHoistedTree (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48743:20)
    at PackageLinker.<anonymous> (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48754:27)
    at Generator.next (<anonymous>)
    at step (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:310:30)
    at /usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:328:14
    at new Promise (<anonymous>)
    at new F (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:5301:28)

lerna.json

{
  "packages": [
    "packages/*",
    "apps/*"
  ],
  "version": "1.0.17",
  "npmClient": "yarn",
  "useWorkspaces": true
}

package.json:

{
...
"workspaces": {
    "packages": [
      "apps/*",
      "packages/*"
    ],
    "nohoist": [
      "**/webpack-dev-server"
    ]
  },
...
}

También estoy recibiendo esta regresión. ¿Alguna noticia?

Lo mismo aquí, actualización interactiva de monorepo y yarn en mac

Invariant Violation: expected workspace package to exist for "stack-utils"
    at invariant (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:2314:15)
    at _loop2 (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:94959:9)
    at PackageHoister.init (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:95018:19)
    at PackageLinker.getFlatHoistedTree (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48743:20)
    at PackageLinker.<anonymous> (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48754:27)
    at Generator.next (<anonymous>)
    at step (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:310:30)
    at /usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:328:14
    at new Promise (<anonymous>)
    at new F (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:5301:28)
$ yarn lerna --version
3.20.2
$ yarn version
1.22.0
$ node --version
v13.8.0

Como solución temporal, use algo yvm y use la versión 1.18.0 . Funciona para mi

yarn policies set-version 1.18.0 funciona para mí: ¡el hilo cambiará automáticamente a esta versión solo para el proyecto! ¡tan limpio!
https://classic.yarnpkg.com/en/docs/cli/policies/

Acabo de tener el mismo problema en un monorepo Lerna + Yarn (v1.22). Resuelto volver a crear el yarn.lock .

Esto parece un duplicado de # 7734.

Me encontré con esto para @ storybook / api. La solución alternativa de @nerdyman parece haber funcionado para mí en el ínterin.

No quería tener que degradar el hilo ya que proviene de mi administrador de paquetes, así que usé npx como una solución terrible.

npx [email protected] add your-deps-here

es trabajo para mi

Tuve el mismo problema y aunque eliminar yarn.lock y ejecutar yarn install (o yarn workspace some-workspace bla bla bla ) funcionó, el problema era que estaba usando una versión más nueva de hilo en comparación con los miembros de mi equipo .

Entonces la solución fue usar yarn policies . Básicamente, ejecuta yarn policies set-policy y esto descargará la última versión estable de hilo y la guardará en .yarn/ y también actualizará su .yarnrc para apuntar a la versión de hilo descargada. De esta manera, puede asegurarse de que todos usen la misma versión de hilo y evitar este tipo de problemas.

Más información aquí: https://classic.yarnpkg.com/en/docs/cli/policies#toc -policies-set-version

Entonces, la solución a este problema es degradar yarn , el hilo 2.0 será divertido

@remorses se disculpa si leí incorrectamente sarcasmo en su respuesta. No he visto a nadie enviar un PR para arreglar esto en 1.x. Es posible que, en otros problemas, la gente haya enviado correcciones para este u otros errores que han sido rechazados, y eso me entristecería. Si hay abundantes PR para 1.x que se están ignorando, espero que los encargados del mantenimiento den la bienvenida a los miembros de la comunidad que quieran ayudar a mantener 1.x. Sin las relaciones públicas y el mantenimiento de la comunidad, es difícil culpar a alguien por querer concentrarse en su rama de desarrollo activo.

Esto suele suceder si está utilizando una versión diferente del mismo paquete npm en espacios de trabajo.

Digamos que tiene @scope/www y @scope/api espacios eslint npm. Pero @scope/www está usando [email protected] mientras que @scope/api está usando [email protected] . Además, tiene [email protected] en la raíz packages.json .

Luego, si intenta instalar un paquete en uno de los espacios de trabajo, obtendrá el error error An unexpected error occurred: "expected workspace package to exist for \"eslint\"". . Porque ninguna de sus versiones de eslint es idéntica.

Una vez que los haga idénticos, no debería recibir ningún error.

Eso es interesante, gracias por los detalles adicionales @abdullahceylan - Solo curiosidad: ¿Cómo manejó Yarn antes de 1.19.2 (sin error) esta situación?

También me da el mismo error @friederbluemle

Estaba experimentando este problema porque tenía diferentes versiones de @babel/core en mis espacios de trabajo, tal como dijo @abdullahceylan . ¡Actualizar @babel/core a la misma versión me resolvió el problema! 🙏

Ojalá hubiera un mensaje más específico para este error.

También tuve este problema pero podría resolverlo:
La razón fue que tenía un paquete (eslint) en uno de mis paquetes y en el espacio de trabajo raíz. Se eliminó del espacio de trabajo raíz y todo volvió a funcionar.

Descubrí que mis problemas provenían de que @babel/core en nextjs se solucionó en 7.7.7 y algunos otros módulos requerían ^7.10.0 por eso yarn coloca una carpeta node_module adicional dentro de su paquete para resolver los conflictos de dependencia.

Lo resolví usar resolutions haciendo

  "resolutions": {
    "**/@babel/core": "7.10.2"
  },

E hizo un yarn install / npx lerna bootstrap

En la aplicación en la que estoy trabajando, pude resolver este error cambiando

"workspaces": [
  "packages/**/*"
],

a

"workspaces": [
  "packages/@org1/*",
  "packages/@org2/*",
  "packages/*"
],

¿Quizás yarn está detectando accidentalmente un espacio de trabajo anidado dentro de los node_modules de uno de mis paquetes? No tuve tiempo de investigarlo. Estaba usando hilo 1.22.4.

EDITAR: Esto parece estar corroborado por las afirmaciones de que la consolidación de las versiones de dependencia (que a su vez las saca del directorio packages ) también puede resolver este problema.

lo que funcionó para mí es

yarn lerna add npmpackage --scope=@scope/my-package

puede usar npx lugar de yarn aquí

Lo mismo aquí yarn add explota por completo al intentar hacer cualquier paquete. Por favor arregle 🙏

De repente me encontré con esto absolutamente de la nada.

Editar: tenía un paquete local para mi mono-repo con el mismo nombre que una dependencia npm, como lo menciona @abdullahceylan.

Tuve el mismo problema con yarn add . En mi caso, se estaba quejando por eslint . Configuré manualmente la versión eslint en 7.2.0 .
Revisé mi yarn.lock para verificar qué dependencias solicitaban una versión diferente de eslint (solo usé la herramienta "Buscar" con la palabra clave eslint ).
Me di cuenta de que muchas dependencias necesitaban la versión 6.8.0 y estaban intentando instalarla.

Resolví el problema configurando la versión eslint en 6.8.0 .
O puede optar por agregar el parámetro resolutions a su archivo package.json . En mi caso, hubiera sido como

"resolutions": {
  "eslint": "6.8.0"
}

Espero que pueda ayudar a alguien.

Muchas gracias @dxit , eso me ayuda 😄

¿Alguien ha podido identificar qué causa exactamente esto? ¿Habrá una solución incluida en la v1?

Tropezar con lo mismo en un monorepo que utiliza elevación. Trabajando alrededor con el truco npx para instalar deps.

Suponiendo que está usando Lerna, @mmun , su solución puede estar relacionada con un orden de resolución incorrecto con respecto a paquetes que dependen unos de otros. Consulte aquí para obtener más detalles.

Tuve este error con el siguiente entorno:

Node: 10.20.1
Yarn: 1.22.4

Estaba funcionando con la configuración siguiente.

Node: 10.15.3
Yarn: 1.13.0

Intenté configurar Yarn en 1.18.0 pero parecía que no funcionaba con el nodo 10.20.1

Nota personal: revise esto una vez que se publique la próxima versión de yarn .

@dkempner yarn 1 no tendrá nuevas versiones, no creo ... Si es así, es muy silencioso en este repositorio (solo 1 compromiso en los últimos 2 meses). Puedes probar con yarn @ berry aunque

Después de probar cada versión, el error comienza en 1.19.2, al menos para Windows. Entonces, algunos cambios entre 1.19.1 - 1.19.2 descansos

@ thefat32 - Sí, eso es correcto. No solo en Windows. Tengo este comando en mi historial que utilizo con bastante frecuencia como solución temporal cada vez que veo el error:

npx [email protected] upgrade-interactive

Tengo el mismo problema cuando agrego cierta dependencia al hilo monorepo.

error An unexpected error occurred: "expected workspace package to exist for \"jest\"".

Hola chicos, ¡tuve exactamente el mismo problema!

An unexpected error occurred: "expected workspace package to exist for \"@jest-cli"".
Estaba experimentando este problema porque tenía una versión diferente de jest-cli en mi espacio de trabajo. Se resolvió actualizando todos los paquetes a la última versión.

@abdullahceylan ¿Sabes si ese sigue siendo el caso con las dependencias _transitive_? Tengo la misma falla que todos los demás, pero en mi caso la dependencia no es mía, así que no sé cómo podría actualizarla. ¿Y workspaces.nohoist cambia algo?

@customcommander TBH No me he encontrado con una situación como la suya, pero lo primero que intentaría en tal situación sería usar algo como "**/pagkage-name" para la opción nohoist .

@customcommander TBH No me he encontrado con una situación como la suya, pero lo primero que intentaría en tal situación sería usar algo como "**/pagkage-name" para la opción nohoist .

¿Por qué?

Actualmente experimentando esto con lerna

Hemos reducido esto para que comience a sucedernos en v1.19.2

Nodo: v12.13.0
hilo: funciona <= v1.19.1
SO: macOS 10.15.6

https://github.com/yarnpkg/yarn/compare/v1.19.1...v1.19.2

yarn policies set-version 1.19.1 nos funciona con lerna

Cambiar las políticas de hilo a yarn policies set-version 1.18.0 también me funcionó.
Yo estaba en:
Hilado : 1.22.5
Nodo : 10,21
Sistema operativo : Arch Linux (x64)

No tengo una solución más allá de las ya sugeridas en este hilo, pero parece que PR https://github.com/yarnpkg/yarn/pull/7289 es donde se introdujo la regresión, y específicamente, estas líneas .

La versión de este error que he estado experimentando es especialmente confusa porque la dependencia que se muestra en el mensaje de error solo se instaló en la raíz del espacio de trabajo y no en ninguno de los espacios de trabajo anidados.

Creé una reproducción mínima aquí: https://github.com/smably/yarn-workspaces-hoisting-bug. En este caso, obtenía expected workspace package to exist for "pretty-quick" aunque pretty-quick solo aparece una vez en el árbol. El error real parece estar ocurriendo cuando el hilo intenta elevar las dependencias transitivas de pretty-quick .

Intenté hurgar en la base de código del hilo para ver si podía solucionar el problema, pero algunas de las pruebas unitarias fallan en mi máquina, el enlace de "contribución" en el archivo README está roto y tuve muchos problemas de depuración. porque no pude hacer que las declaraciones console.log o debugger funcionen (supongo que porque yarn genera procesos secundarios y no heredan los --inspect del nodo

En mi caso, podría ser la versión confilcts de @babel/core . Lo resolví: revisa la versión instalada por yarn why @babel/core , agrega resolución al paquete que no es la misma versión para unificar la versión.

Agregar esto en caso de que alguien más (que Dios los ayude) tenga un problema similar, ya que acabo de pasar la mitad de mi fin de semana depurando / básicamente reformateando mi computadora ...

Configuré yarn policies set-version 1.19.1 pensando que todo estaba bien. Unas horas más tarde hice una compilación de mi aplicación Next.js y estaba obteniendo este Error occurred prerendering page... . Literalmente probé todo bajo el sol, y me acabo de dar cuenta de que hacer yarn policies set-version 1.19.1 era la causa.

Lo que es aún más extraño es que destruye mi proyecto local. Si cambio a una rama estable, elimino todos los módulos de nodo, yarn.lock, etc., etc., vuelvo a la última versión de yarn y ejecuto yarn install , luego compilo mi aplicación Next.js nuevamente, obtengo lo mismo error.

No tengo idea de lo que está pasando tbh. Literalmente reinstalé el nodo, el hilo, etc. La única solución fue eliminar la aplicación y clonarla nuevamente.

Tuve el mismo problema con el paquete eslint . Resulta que el problema era que la raíz de mi espacio de trabajo tenía eslint como una dependencia de desarrollo, pero también tenía un paquete de espacio de trabajo que dependía de un paquete npm que dependía de una versión diferente de eslint, que supongo terminó rompiendo el proceso de elevación de alguna manera. Todo lo que hice fue asegurarme de que todos los paquetes dependieran de la misma versión de eslint y el error desapareciera.

también experimentando este problema. La solución de @ export-mike funciona como una revisión, gracias

¿Hay alguna hoja de ruta oficial de respuesta / corrección del equipo de desarrollo de yarn sobre esto?

Mi solución fue cambiar a pnpm. ¡Lo recomiendo encarecidamente!

¿Fue útil esta página
0 / 5 - 0 calificaciones