¿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
git clone [email protected]:callstack/haul.git
cd haul
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.
12.14.1
/ 13
(reproducible en ambos)1.21.1
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
.
Publicado en Stack Overflow; por si acaso
¿Por qué Yarn lanza "Violación invariante: se esperaba que exista el paquete de espacio de trabajo" cuando intento actualizar algunas dependencias?
@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ónnohoist
.
¿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!
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/