Yarn: ERRO: Não há cenários; deve ter pelo menos um.

Criado em 2 mar. 2017  ·  35Comentários  ·  Fonte: yarnpkg/yarn

eu quero usar "yarn" no meu projeto npm
ao executar shell " yarn " no shell,
ele lança " ERRO: Não há cenários; deve ter pelo menos um. "

que problema?

fio --versão
0,27
nó -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

Comentários muito úteis

Você tem o yarn errado 😄 O Yarn que você está executando vem do pacote cmdtest : http://manpages.ubuntu.com/manpages/xenial/man1/yarn.1. html. Desinstalar cmdtest deve corrigir isso. Depois de desinstalá-lo, siga as instruções em https://yarnpkg.com/en/docs/install#linux -tab para adicionar o repositório do 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 comentários

@wangfaxi1985 , verifique novamente sua versão yarn , a versão mais recente é 0.21.3 e a versão marcada é 0.22.0-0 .
Verifique também se você executou o comando yarn na pasta onde seu package.json está localizado
Obrigado

Você tem o yarn errado 😄 O Yarn que você está executando vem do pacote cmdtest : http://manpages.ubuntu.com/manpages/xenial/man1/yarn.1. html. Desinstalar cmdtest deve corrigir isso. Depois de desinstalá-lo, siga as instruções em https://yarnpkg.com/en/docs/install#linux -tab para adicionar o repositório do 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 por padrão no Ubuntu 17.04, pelo menos, então talvez isso deva ser adicionado às instruções de instalação ...

Para qualquer um que encontrar isso, se você estiver recebendo um erro em sudo apt-get install yarn execute sudo apt remove cmdtest primeiro.

No Ubuntu (pelo menos 17.04), depois de sudo apt remove cmdtest , primeiro siga https://yarnpkg.com/en/docs/install#linux-tab > Ubuntu. Só então sudo apt-get install yarn . Se você não seguir https://yarnpkg.com/en/docs/install#linux -tab, executar sudo apt-get install yarn instalará cmdtest novamente.

No Ubuntu 17.10, não consigo instalar o yarn - removi o pacote cmdtest , mas sudo apt-get install yarn reinstalei cmdtest .

@istals eu tenho o mesmo problema que você. O cmdtest ainda está instalado, mesmo que eu o remova primeiro. Como obtenho fios no Ubuntu 17.10?

Para o Ubuntu 17.10, tente a solução alternativa:

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

Para o Ubuntu 17.10, você precisa adicionar o repositório Yarn primeiro.

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

Certifique-se de remover o cmdtest se você o tiver instalado.

Prefira isso a instalar via npm.

@jdorleans - você não precisa instalar o npm se estiver usando o Yarn :)

@jdorleans Obrigado pelo seu comentário. Eu instalei com sucesso o fio usando npm install -g yarn .

Ubuntu: vamos nomear binário do pacote $ node nodejs , mas também deixar cmdtest binário ser yarn

Isso seria muito mais fácil se, em vez de instalá-lo como root, ele fosse instalado no espaço do usuário.

@cserpell Você pode fazer isso se quiser. Há um script de instalação que você pode usar, ou você pode simplesmente baixar o tarball do Yarn e extraí-lo onde quiser. Os detalhes estão no site. Independentemente disso, você ainda terá o problema de ter vários binários diferentes de yarn se tiver cmdtest instalado.

@sheerun Para ser justo, cmdtest usou o comando yarn primeiro, antes mesmo do Yarn existir.

@Daniel15 Foi o que fiz, principalmente porque não consigo instalar programas onde estou trabalhando. O truque é apenas substituir qualquer binário instalado com meu próprio diretório bin .

Eu estava tendo o mesmo problema no Ubuntu 18.04, mas consegui corrigir usando os seguintes 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 Segui suas instruções no comentário anterior e tentei reinstalar o fio novamente.

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 instalar fio

depois de verificar a versão, descobri que a versão era 1.5.1
Está tudo bem? Ou fiz algo errado.
Também criaria algum problema se eu desinstalar o cmdtest e todas as suas dependências?

@Nazarah - Isso mesmo, 1.5.1 é a versão estável mais recente. Se você deseja obter o 1.6.0, precisa adicionar o repositório RC (substitua "stable" por "rc" em /etc/apt/sources.list.d/yarn.list )

@Daniel15
desinstalando cmdtest e dependência e instalando yarn.txt

O primeiro arquivo de texto mostra os resultados da vírgula da desinstalação do cmdtest e de todas as suas dependências até usar os comandos sugeridos para instalar o yarn

instalando o yarn fresh.txt

este arquivo mostra quando tentei executar o fio de casa

Editei meu comentário porque percebi que 1.5.1 é a versão mais recente do Yarn :)

Obrigado pelo seu feedback! :D

@OmerHerera

Verifique também se você executou o comando yarn na pasta onde seu package.json está localizado

Você quer dizer package.json para mastarm?

@becdetat Eu tenho o Ubuntu 17.04 instalado, mas quando digito yarn --version depois de instalar o yarn conforme recomendado, recebi isso como mensagem « yarn » is not installed yet.You can install by typing : sudo apt install cmdtest . Então eu corro sudo apt install cmdtest mas falhou.

@florianeBhz Você precisa adicionar o repositório Yarn primeiro:

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

Então você pode sudo apt-get update && sudo apt-get install yarn

Mais detalhes no site do Yarn: https://yarnpkg.com/en/docs/install#debian -stable

Para o seu pacote Debian, considere entrar em conflito com cmdtest no debian/control ; adicione um desvio caso o executável cmdtest já exista; use o padrão update-alternatives descrito aqui: https://wiki.debian.org/DebianAlternatives

; use o padrão update-alternatives descrito aqui: wiki.debian.org/DebianAlternatives

As alternativas são para quando você tem vários aplicativos diferentes que fazem a mesma coisa. Não é para lidar com conflitos de nomenclatura.

Dito isso, adicionar um conflito com cmdtest parece razoável. Nós podemos fazer isso!

Como um comentário lateral: os desenvolvedores do Ubuntu pareciam considerar que quando o usuário digita apt-get install foo , se foo não existe, mas há um comando com esse nome fornecido pelo pacote bar , então é uma boa idéia instalar quase silenciosamente o pacote bar .

$ 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

Pessoalmente, acho que é um daqueles casos em que as pessoas pensam que implementar um comportamento menos rigoroso facilitará a vida das pessoas, mas na verdade apenas complica as coisas porque introduz aleatoriedade (por exemplo, esse problema).

Basta usar o nvm para usar o npm para instalar o fio ...

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 - as pessoas não devem confiar em um script aleatório para instalar o NVM. Não existe um método oficial que você possa citar em vez de espalhar um padrão de instalação inseguro? Obrigado!

https://github.com/creationix/nvm é o projeto oficial no Github. É literalmente quem o criou. Não conheço uma forma mais segura de fazer isso. A alternativa seria usar o PPA que apontaria para nodesource.com ... apenas duas maneiras que eu conheço.

@shawnolson-fp - isso não resolverá o problema listado neste
questão. O problema é que um aplicativo diferente que fornece um comando "fio"
está instalado. A única maneira adequada de corrigir isso é desinstalando
o outro aplicativo ou removê-lo do seu $PATH. Você pode alterar a ordem de
seu $PATH, mas ter dois aplicativos que fornecem o mesmo comando pode
ser bem confuso de qualquer maneira.

Enviado do meu telefone.

Em terça-feira, 13 de novembro de 2018, 13h24, Benjamin Bach < [email protected] escreveu:

@shawnolson-fp https://github.com/shawnolson-fp - as pessoas não deveriam
confie em um script aleatório para instalar o NVM. Não existe um método oficial que
você pode citar em vez de espalhar um padrão de instalação inseguro? Obrigado!


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/yarnpkg/yarn/issues/2821#issuecomment-438442528 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/AAFnHe9xSSKcMf0WCOzezhob80rXrzeTks5uuzimgaJpZM4MQv_p
.

@shawnolson-fp - isso não resolverá o problema listado nesta edição. O problema é que um aplicativo diferente que fornece um comando "yarn" está instalado. A única maneira adequada de corrigir isso é desinstalar o outro aplicativo ou removê-lo do seu $PATH. Você pode alterar a ordem do seu $PATH, mas ter dois aplicativos que fornecem o mesmo comando pode ser bastante confuso de qualquer maneira. Enviado do meu telefone.

Na terça-feira, 13 de novembro de 2018, 13h24 Benjamin Bach @ . * escreveu: @shawnolson-fp https://github.com/shawnolson-fp - as pessoas não devem confiar em um script aleatório para instalar o NVM. Não existe um método oficial que você possa citar em vez de espalhar um padrão de instalação inseguro? Obrigado! — Você está recebendo isso porque foi mencionado. Responda a este e-mail diretamente, visualize-o no GitHub < #2821 (comentário) > ou silencie o tópico https://github.com/notifications/unsubscribe-auth/AAFnHe9xSSKcMf0WCOzezhob80rXrzeTks5uuzimgaJpZM4MQv_p .

Eu entendo o problema, mas como você disse, a maneira de contornar isso é muito difícil para a maioria das pessoas que querem apenas que o fio funcione. Por que diabos o Debian decidiu escolher cmdtest em vez de yarn é qual é o problema. Estou simplesmente fornecendo uma maneira alternativa de instalar o yarn e o npm no mesmo $ PATH que o nvm - Um pacote bem legal se você me perguntar ...

E até que o problema seja corrigido, poucas pessoas vão querer mexer com variáveis ​​de ambiente para resolver algo que parece tão simples.

@shawnolson-fp haha, sim, notei que curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash era na verdade a instrução oficial de instalação e excluí meu comentário. Mas estou chocado. CHOCADO!

Além disso, _Basta usar o nvm para usar o npm para instalar o fio ......_ mundo cruel cruel. Espero que todos pensem duas vezes antes de fazer isso para ganhar left-pad ou algo assim.

Por falar nisso. a maioria dos problemas do Debian são resolvidos girando isso. Exceto que ter um pacote oficial ainda parece um pouco fora de alcance.

Eu definitivamente não iria com o seu padrão, é muito complicado.

Por que diabos o Debian decidiu escolher cmdtest em vez de yarn é qual é o problema.

Aponte o dedo para yarn . Eles foram avisados ​​de que este nome de pacote foi usado antes de seu lançamento público e tiveram entradas de pessoas de empacotamento do Debian tentando resolver isso ainda. Há um esforço atual para criar um pacote em andamento para que um lançamento oficial possa ser no Debian e em dists downstream, como o Ubuntu.

@Daniel15 analisando esse problema, parece seguro o suficiente para fechar + congelar com uma nota final sobre a leitura da documentação? Parece que mantê-lo aberto gera soluções alternativas indesejáveis?

Referências para o trabalho em andamento do Debian:

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

@benjaoming lol - isso é algo que eu não sabia, cara, que bagunça!

Eu sinto pelos dois lados, porque IMO Debian e Yarn são os melhores no que são, então estou dividido 😢
Você pensaria que talvez um prompt simples na instalação: which yarn would you like to install @facebook/yarn or cmdtest/yarn?

Neste ponto, a maioria das pessoas provavelmente apenas dirá $# e usará npm. 😩

@facebook/yarn

Não relacionado ao problema em questão, mas o Yarn é um projeto da comunidade, não do Facebook - seria @yarnpkg/yarn 🙂

@arcanis lol foi só um exemplo 😋... tão literal aqui, ha!

analisando esse problema, parece seguro o suficiente para fechar + congelar com uma nota final sobre a leitura da documentação?

Boa ideia. Vou bloquear isso porque muitas discussões não relacionadas (mas valiosas!) estão acontecendo aqui. Sinta-se à vontade para criar questões separadas se houver algo para discutir. Enquanto isso, desinstale cmdtest se quiser usar o Yarn. O pacote Yarn Debian "conflita" com cmdtest, então ele deve avisá-lo sobre isso.

Esta página foi útil?
0 / 5 - 0 avaliações