Yarn: ERROR: No hay escenarios; debe tener al menos uno.

Creado en 2 mar. 2017  ·  35Comentarios  ·  Fuente: yarnpkg/yarn

quiero usar "hilo" en mi proyecto npm
cuando se ejecuta shell " yarn " en el shell,
arroja " ERROR: No hay escenarios; debe haber al menos uno. "

¿qué problema?

hilo --versión
0.27
nodo -v
v6.9.5
uname -a
Linux wfx-pc 4.4.0-3-deepin-amd64 #1 SMP Deepin 4.4.30-2 (2016-12-01) x86_64 GNU/Linux

Comentario más útil

Tienes el yarn incorrecto 😄 El Yarn que estás ejecutando proviene del paquete cmdtest : http://manpages.ubuntu.com/manpages/xenial/man1/yarn.1. html Desinstalar cmdtest debería arreglar esto. Una vez que lo haya desinstalado, siga las instrucciones en https://yarnpkg.com/en/docs/install#linux -tab para agregar el repositorio de Yarn:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

Todos 35 comentarios

@wangfaxi1985 , verifique nuevamente su versión yarn , la última versión es 0.21.3 y la versión etiquetada es 0.22.0-0 .
También verifique que ejecute el comando yarn en la carpeta donde se encuentra su package.json
Gracias

Tienes el yarn incorrecto 😄 El Yarn que estás ejecutando proviene del paquete cmdtest : http://manpages.ubuntu.com/manpages/xenial/man1/yarn.1. html Desinstalar cmdtest debería arreglar esto. Una vez que lo haya desinstalado, siga las instrucciones en https://yarnpkg.com/en/docs/install#linux -tab para agregar el repositorio de Yarn:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

cmdtest parece estar instalado de forma predeterminada en Ubuntu 17.04 al menos, por lo que tal vez debería agregarse a las instrucciones de instalación...

Para cualquiera que encuentre esto, si recibe un error en sudo apt-get install yarn ejecute primero sudo apt remove cmdtest .

En Ubuntu (al menos 17.04), después sudo apt remove cmdtest , primero siga https://yarnpkg.com/en/docs/install#linux-tab > Ubuntu. Solo entonces sudo apt-get install yarn . Si no sigue https://yarnpkg.com/en/docs/install#linux -tab, al ejecutar sudo apt-get install yarn se instalará cmdtest nuevamente.

En Ubuntu 17.10 no puedo instalar yarn: eliminé el paquete cmdtest , pero sudo apt-get install yarn reinstalé cmdtest .

@istals Tengo el mismo problema que tú. El cmdtest todavía está instalado incluso si lo elimino primero. ¿Cómo obtengo hilo en Ubuntu 17.10?

Para Ubuntu 17.10, pruebe la solución alternativa:

sudo apt remove cmdtest
sudo apt install npm
sudo npm install -g yarn

Para Ubuntu 17.10, primero debe agregar el repositorio Yarn.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt remove cmdtest
sudo apt install yarn

Asegúrese de eliminar cmdtest si lo tiene instalado.

Prefiere esto a la instalación a través de npm.

@jdorleans : no tiene que instalar npm si está usando Yarn :)

@jdorleans Gracias por tu comentario. Instalé hilo con éxito usando npm install -g yarn .

Ubuntu: nombremos binario de node paquete nodejs , pero también dejemos que cmdtest binario sea yarn

Esto sería mucho más fácil si en lugar de instalarlo como root, se instalara en el espacio del usuario.

@cserpell Puedes hacer eso si quieres. Hay un script de instalación que puede usar, o simplemente puede descargar el tarball de Yarn y extraerlo donde quiera. Los detalles están en el sitio. De todos modos, seguirá teniendo el problema de tener múltiples binarios yarn diferentes si tiene instalado cmdtest .

@sheerun Para ser justos, cmdtest usó el comando yarn primero, incluso antes de que Yarn existiera.

@Daniel15 Eso es lo que hice, especialmente porque no puedo instalar programas donde estoy trabajando. El truco es anular cualquier binario instalado con mi propio directorio bin .

Estaba teniendo el mismo problema en Ubuntu 18.04, sin embargo, pude solucionarlo usando los siguientes comandos:

sudo apt remove cmdtest
sudo apt remove yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

@ Daniel15 Seguí tus instrucciones en el comentario anterior e intenté reinstalar yarn nuevamente.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key agregar -
echo "deb https://dl.yarnpkg.com/debian/estable principal" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt actualizar
sudo apt instalar hilo

después de verificar la versión, encontré que la versión era 1.5.1
¿Está bien? O hice algo mal.
¿También crearía algún problema si desinstalo cmdtest y todas sus dependencias?

@Nazarah : es correcto, 1.5.1 es la última versión estable. Si desea obtener 1.6.0, debe agregar el repositorio RC en su lugar (reemplace "estable" con "rc" en /etc/apt/sources.list.d/yarn.list )

@Daniel15
desinstalando cmdtest y dependencia e instalando yarn.txt

El primer archivo de texto muestra los resultados de commad desde la desinstalación de cmdtest y todas sus dependencias hasta el uso de los comandos sugeridos para instalar yarn.

instalando hilo fresco.txt

este archivo muestra cuando traté de ejecutar hilo desde casa

Edité mi comentario porque me di cuenta de que 1.5.1 es la última versión de Yarn :)

Gracias por tus comentarios. :D

@OmerHerera

También verifique que ejecute el comando yarn en la carpeta donde se encuentra su paquete.json

¿Te refieres a package.json para mastarm?

@becdetat Tengo Ubuntu 17.04 instalado, pero cuando escribo yarn --version después de instalar yarn como se recomienda, aparece este mensaje como « yarn » is not installed yet.You can install by typing : sudo apt install cmdtest . Luego ejecuto sudo apt install cmdtest pero falló.

@florianeBhz Primero debe agregar el repositorio de Yarn:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Entonces puedes sudo apt-get update && sudo apt-get install yarn

Más detalles en el sitio de Yarn: https://yarnpkg.com/en/docs/install#debian -stable

Para su paquete Debian, considere entrar en conflicto con cmdtest en debian/control ; agregue un desvío en caso de que el ejecutable cmdtest ya exista; use el patrón update-alternatives descrito aquí: https://wiki.debian.org/DebianAlternatives

; use el patrón de actualización de alternativas descrito aquí: wiki.debian.org/DebianAlternatives

Las alternativas son para cuando tienes varias aplicaciones diferentes que hacen lo mismo. No es para lidiar con conflictos de nombres.

Habiendo dicho eso, agregar un conflicto con cmdtest parece razonable. ¡Podemos hacerlo!

Como comentario adicional: los desarrolladores de Ubuntu parecían considerar que cuando el usuario escribe apt-get install foo , si foo no existe pero hay un comando con ese nombre proporcionado por el paquete bar , entonces es una buena idea instalar casi en silencio el paquete bar en su lugar.

$ sudo apt-get install yarn
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'cmdtest' instead of 'yarn'
[...]
$ dpkg -S bin/yarn
cmdtest: /usr/bin/yarn

Personalmente, creo que es uno de esos casos en los que las personas piensan que implementar un comportamiento menos estricto hará que la vida de las personas sea más fácil, pero en realidad solo complica las cosas porque introduce aleatoriedad (por ejemplo, este problema).

Simplemente use nvm para usar npm para instalar hilo...

sudo apt remove cmdtest
sudo apt remove yarn
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install node -lts
npm install -g yarn
yarn --version
1.12.3

De nada 🌮

@shawnolson-fp: las personas no deben confiar en un script aleatorio para instalar NVM. ¿No hay un método oficial que pueda citar en lugar de difundir un patrón de instalación inseguro? ¡Gracias!

https://github.com/creationix/nvm es el proyecto oficial en Github. Es literalmente quien lo creó. No conozco una forma más segura de hacerlo. La alternativa sería usar PPA que apuntaría a nodesource.com... solo conozco dos formas.

@shawnolson-fp: eso no va a resolver el problema enumerado en este
asunto. El problema es que una aplicación diferente que proporciona un comando de "hilo"
esta instalado. La única forma adecuada de solucionarlo es desinstalando
la otra aplicación o eliminarla de su $PATH. Puede cambiar el orden de
su $PATH en su lugar, pero tener dos aplicaciones que proporcionen el mismo comando puede
ser bastante confuso de todos modos.

Enviado desde mi teléfono.

El martes 13 de noviembre de 2018 a las 13:24 Benjamin Bach < [email protected] escribió:

@shawnolson-fp https://github.com/shawnolson-fp - la gente no debería
confíe en un script aleatorio para instalar NVM. ¿No hay un método oficial que
puede citar en lugar de difundir un patrón de instalación inseguro? ¡Gracias!


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

@ shawnolson-fp: eso no resolverá el problema enumerado en este número. El problema es que se instaló una aplicación diferente que proporciona un comando de "hilo". La única forma adecuada de solucionarlo es desinstalar la otra aplicación o eliminarla de su $PATH. En su lugar, puede cambiar el orden de su $PATH, pero tener dos aplicaciones que proporcionen el mismo comando puede ser bastante confuso de todos modos. Enviado desde mi teléfono.

El martes 13 de noviembre de 2018 a las 13:24 Benjamin Bach @ . * escribió: @shawnolson-fp https://github.com/shawnolson-fp - la gente no debería confiar en un script aleatorio para instalar NVM. ¿No hay un método oficial que pueda citar en lugar de difundir un patrón de instalación inseguro? ¡Gracias! — Estás recibiendo esto porque te mencionaron. Responda a este correo electrónico directamente, véalo en GitHub < #2821 (comentario) >, o silencie el hilo https://github.com/notifications/unsubscribe-auth/AAFnHe9xSSKcMf0WCOzezhob80rXrzeTks5uuzimgaJpZM4MQv_p .

Entiendo el problema, pero como dijiste, la forma de evitarlo es demasiado problemático para la mayoría de las personas que solo quieren que el hilo funcione. Por qué diablos Debian decidió elegir cmdtest en lugar de yarn es el problema. Simplemente estoy brindando una forma alternativa de instalar yarn y npm en el mismo $PATH que nvm: un paquete bastante ingenioso si me preguntas ...

Y hasta que se solucione el problema, muy pocas personas querrán jugar con las variables de entorno para resolver algo que parece tan simple.

@shawnolson-fp jaja, sí, me di cuenta de que curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash era en realidad la instrucción de instalación oficial y eliminé mi comentario. Pero estoy sorprendido. ¡CONMOCIONADO!

Además, _Solo use nvm para usar npm para instalar yarn ......_ cruel cruel world. Espero que todos lo piensen dos veces antes de hacer esto para obtener left-pad o lo que sea.

Por cierto. la mayoría de los problemas de Debian se resuelven girando esto. Excepto que tener un paquete oficial todavía parece un poco fuera de alcance.

Definitivamente no iría con tu patrón, es demasiado complicado.

Por qué diablos Debian decidió elegir cmdtest en lugar de yarn es el problema.

Apunta con el dedo a yarn . Se les advirtió que el nombre de este paquete se tomó antes de su lanzamiento público y han recibido aportes de las personas que empaquetan Debian que aún intentan resolver esto. Hay un esfuerzo actual para crear un paquete en curso, de modo que un lanzamiento oficial pueda estar en Debian y en distribuciones posteriores como Ubuntu.

@ Daniel15 revisando este problema, ¿parece lo suficientemente seguro como para cerrar + congelar con una nota final sobre la lectura de la documentación? ¿Parece que mantenerlo abierto genera soluciones alternativas no deseadas?

Referencias para el trabajo en curso de Debian:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843021
https://salsa.debian.org/js-team/node-yarnpkg

@benjaoming lol - eso es algo que no sabía, hombre, ¡qué lío!

Lo siento por ambos lados, porque IMO Debian e Yarn son los mejores en lo que son, así que estoy desgarrado 😢
Pensarías que tal vez un mensaje simple en la instalación: which yarn would you like to install @facebook/yarn or cmdtest/yarn?

En este punto, la mayoría de las personas probablemente solo dirán $# y usarán npm. 😩

@facebook/yarn

No está relacionado con el problema en cuestión, pero Yarn es un proyecto comunitario, no uno de Facebook: sería @yarnpkg/yarn 🙂

@arcanis lol fue solo un ejemplo 😋... tan literal aquí, ¡ja!

al revisar este problema, ¿parece lo suficientemente seguro como para cerrar + congelar con una nota final sobre la lectura de la documentación?

Buena idea. Voy a bloquear esto ya que aquí se está produciendo una gran cantidad de discusiones no relacionadas (¡pero valiosas!). Siéntase libre de crear problemas separados si queda algo por discutir. Mientras tanto, desinstale cmdtest si desea utilizar Yarn. El paquete Yarn Debian "está en conflicto" con cmdtest, por lo que debería advertirle al respecto.

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