<p>yarn global add não instala os binários corretamente</p>

Criado em 11 out. 2016  ·  120Comentários  ·  Fonte: yarnpkg/yarn

Você deseja solicitar um _feature_ ou denunciar um _bug_?
_erro_

Qual é o comportamento atual?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
create-react-app not found

Qual é o comportamento esperado?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
/usr/local/bin/create-react-app

Mencione seu node.js, yarn e versão do sistema operacional.

➜  ~  system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.12 (16A323)
      Kernel Version: Darwin 16.0.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

➜  ~ node --version
v6.7.0
➜  ~  yarn --version
0.15.1
cat-bug cat-compatibility

Comentários muito úteis

Execute yarn global bin e adicione-o ao seu $PATH .

Todos 120 comentários

O mesmo comportamento aqui, no mesmo sistema.

Apenas uma nota para esclarecer que isso não é exclusivo para criar-reagir-app. mean-cli por exemplo traz o mesmo problema.

Também tenho isso no sistema Ubuntu 15.10

Execute yarn global bin e adicione-o ao seu $PATH .

Isso resolve tudo. Mas isso não está documentado de forma alguma aqui: https://yarnpkg.com/en/docs/cli/global
(Quero dizer que sim yarn global bin está documentado, mas o exemplo não sugere que seja necessário adicioná-lo ao seu PATH)

Na minha máquina, isso retorna /usr/local/Cellar/node/6.7.0/bin . Isso significa que todos os meus binários globais estão vinculados a esta versão do nó e, se eu atualizar, terei que reinstalá-los? Isso parece confuso, não é?

Outra coisa que notei é que "$(yarn global bin)" retorna ^[[2K^[[1G/usr/local/Cellar/node/6.7.0/bin . Estou fazendo algo errado ao tentar adicionar export="${PATH}:$(yarn global bin)" ao meu .zshrc ?

Não é AFAIK documentado. Deveria ser. Sinta-se à vontade para enviar um PR.
Leia isto para entender por que o caminho global é específico da versão.

@wokalski tem certeza de que referiu o problema certo? Eu nem entendo porque isso está relacionado ...

@Fahrradflucht desculpe! Corrigido.

Ok, entendi!

Então fico com esta pergunta:

Outra coisa que notei é que "$ (yarn global bin)" retorna ^ [[2K ^ [[1G / usr / local / Cellar / node / 6.7.0 / bin. Estou fazendo algo errado ao tentar adicionar export = "$ {PATH}: $ (yarn global bin)" ao meu .zshrc?

Eu arquivaria um novo problema se tivesse mais certeza de que não cometi um erro estúpido 😁

@Fahrradflucht Não é só você que tenho o mesmo problema no macOS usando o bash antigo.

export PATH="/usr/local/Cellar/node/6.3.1/bin:$PATH"

trabalho

export PATH="$(yarn global bin):$PATH"

Não. Eu abri um problema; https://github.com/yarnpkg/yarn/issues/851

yarn global bin está /usr/bin no meu sistema. Eu quero que seja /usr/local/bin para me salvar de dores de cabeça permanentes.

Agora que estou pensando nisso ... por que yarn global bin retorna ~/.yarn-cache/.global/node_modules/.bin/ ?

@kaihendry Porque o Yarn foi instalado pelo Homebrew

Mesmos problemas no macOS

O Yarn não parece estar instalando binários em $(yarn global bin) , o que, como estou usando nvm no OSX, é /Users/username/.nvm/versions/node/v6.9.2/bin

Depois de fazer yarn global add nodemon ele não foi encontrado em nenhum lugar e nada em uma instalação detalhada parece mostrar que ele foi colocado em um diretório bin.

ATUALIZAR

yarn global remove nodemon e yarn global add nodemon consertaram e colocaram em $(yarn global bin) corretamente. Ainda nada no registro detalhado, entretanto ...

exatamente o mesmo problema que @ c0bra declarou.

Vejo um relatório que foi corrigido em 0,20 RC. Alguém pode verificar, por favor?

Acabei de encontrar esse problema com a v0.20.0, mas resolvi removendo e adicionando novamente o pacote como @ c0bra mencionado.

Ainda não funciona para mim na v0.20.3:

$ cd $(yarn global bin)
$ ls 
tern@  yarn@  yarnpkg@
$ yarn global add ember-cli
yarn global v0.20.3
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
warning No license field
Done in 3.81s.
$ cd $(yarn global bin)
$ ls
tern@  yarn@  yarnpkg@

Ainda quebrado em 0.20.3 instalado por meio de homebrew no macOS.

Tive o mesmo problema hoje (instalação homebrew, yarn v0.20.3). Descobri que esqueci de exportar a pasta bin para meu PATH antes de instalar pacotes globais. Eu exportei usando:
export PATH="$(yarn global bin):$PATH"
e, em seguida, remover e adicionar novamente os pacotes globais vinculados corretamente aos binários. (Obrigado @ c0bra)

Para mim (macOS Sierra e yarn 0.21.3 via Homebrew) agora está funcionando para mim (onde não estava antes). Tive que yarn global remove ----- && yarn global add ---- .

Encontrei o mesmo problema com @erizocosmico usando Yarn v0.21.3 (estou usando nvm). Corrigido pelas seguintes etapas:

  1. Adicione o seguinte em meu arquivo .zshrc :
export PATH="$(yarn global bin):$PATH"
  1. yarn global remove [package-name] depois yarn global add [package-name]

O único problema pode ser que o pacote está realmente instalado no /usr/local/Cellar/node/7.7.1/bin , porque ao instalar o Yarn via Homebrew, ele também instalaria um executável do Node no caminho do Homebrew , que parece estranho e pode estar em conflito com o nvm. E como o arquivo .zshrc foi executado no caminho do HOME, o pacote global sempre seria instalado na pasta bin do nó do Homebrew.

  1. As correções aqui são apenas temporárias. Quando uma nova atualização de nó chegar, seus pacotes globais deixarão de funcionar e precisarão ser religados. Trocado por pacotes globais para npm por enquanto.

  2. Além disso, se você tiver pacotes globais instalados por meio de npm , yarn terá conhecimento deles.

Como eu consertei isso:

  1. $ yarn global remove ___

  2. Certifique-se de que o NVM é obtido antes de adicionar fios ao seu PATH

# First...
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

# Then...
export PATH="$(yarn global bin):$PATH"
  1. $ yarn global add ___

  2. Confirme o caminho de instalação do pacote global

$ which ___
# Should give you...
/path/to/nvm/versions/v7.6.0/bin/___

Tentei as soluções propostas acima e não funcionou para mim.
Eu vi que isso pode ser causado pelas diferentes maneiras de instalar o yarn e onde estão os binários do yarn (no meu caso, o yarn foi instalado com apt-get e está disponível em /usr/bin )

O erro que recebi ao instalar o ember foi:

$ yarn global add ember-cli
yarn global v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
error We don't have permissions to touch the file "/usr/bin/ember".

Preste atenção na última linha:
yarn tentou colocar a caixa de brasa na pasta (raiz): /usr/bin

Neste ponto, encontrei duas alternativas:

  • a) sudo yarn global add ember-cli
    Instalar brasa com sudo funciona, porque então o fio pode gravar em /usr/bin
  • b) coloque a pasta yarn/global/node_modules/.bin em $ PATH; por exemplo, adicionar algo assim no final do seu arquivo .(whatever)rc :
    export PATH=$PATH:$GOBIN:~/.config/yarn/global/node_modules/.bin/
    Dessa forma, os binários globais do yarn estarão disponíveis no $PATH

Isso funcionou para mim!

  1. Adicione o seguinte ao meu arquivo .zshrc:
    export PATH = "$ (yarn global bin): $ PATH"
  2. yarn global remove [nome do pacote] e, em seguida, yarn global adiciona [nome do pacote]

O mesmo aqui:

yarn --version
0.21.3
yarn global add mocha
success Installed "[email protected]" with binaries: [..]
$ mocha
-bash: mocha: command not found

Funcionou usando:
npm install --global mocha

atualizar com homebrew causa outro problema, porque as caixas instaladas com fio não são realocadas. Isso é o que eu tinha:

$ yarn global bin
/usr/local/Cellar/node/7.4.0/bin
$ ls $(yarn global bin)
bower     ember     node      phantomjs

agora atualize:

$ brew update && brew upgrade

e agora este:

$ yarn global bin
/usr/local/Cellar/node/7.8.0/bin
$ ls $(yarn global bin)
node

chamando brasa:

$ ember
-bash: ember: command not found

Os binários sumiram, é preciso realocá-los manualmente 😦

Mac OS X

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.8.0
npm --version
4.2.0
yarn --version
0.22.0

Eu tentei colocar:
export PATH="$(yarn global bin):$PATH"
no meu arquivo .zshrc como sugerido acima ... reiniciei meu terminal, nada acontece. Até reiniciei minha máquina. Nada acontece.

Tentei digitar o snippet de código abaixo no meu .zshrc:
export PATH="$PATH: yarn global bin "
isso é sugerido em https://yarnpkg.com/en/docs/install#mac -tab, mas mesmo assim nada acontece.

Alguma outra sugestão? :)

Perdi meu executável ember após atualizar para o yarn v0.22.0:

$ brew update && brew upgrade

No entanto, removê-lo e adicioná-lo resolveu o problema para mim:

$ yarn global remove ember-cli
$ yarn global add ember-cli

sim, essa é a solução alternativa. mas devemos encontrar uma maneira de atualizar e mover facilmente as coisas para um novo diretório quando o nó for atualizado.

por que não há lista para pacotes globais? existe uma razão pela qual não temos .yarnrc.json ou .package.json ou algo assim, e nele temos um arquivo de pacote normal com uma lista de dependências, que serão os pacotes globais instalados?

quando executo yarn global bin , ocorreu o erro: No such file or directory: 'global' , não tenho certeza do que deu errado.
yarn - versão # 0.22

yarn global remove typescript && yarn global add typescript corrigiu o problema para mim.

OSX: El Capitan.
Nó: 4.7.2 (a n)

Atualmente experimentando isso após a atualização de 0.17 para 0.22 . A correção sugerida aqui funciona, mas eu não precisava fazer isso no passado, o que me leva a acreditar que se trata de um bug.

Mac OS X

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.9.0
npm --version
4.2.0
yarn --version
0.23.2

Tentei colocar esses trechos de código no meu perfil .zshrc -> 1, 2 e 3.

  1. De acordo com as recomendações acima:
    export PATH="$(yarn global bin):$PATH"
  1. De acordo com https://yarnpkg.com/en/docs/install
    export PATH="$PATH: yarn global bin "

  2. Eu tentei não ter nada dos codesnippets em meu .zshrc.

Reiniciei meu terminal, nada acontece.
Até reiniciei minha máquina. Nada ainda.

Eu tive o mesmo problema e esta foi minha solução:

Problema

  • yarn foi instalado usando brew
  • usando yarn global add ... não instala no caminho retornado por yarn global bin que no meu caso é /usr/local/Cellar/node/7.9.0/bin
  • o caminho real onde yarn global add ... instala os pacotes é ~/.config/yarn/global/node_modules/.bin

Solução

  • Adicione isto à minha configuração de caminho:
export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"

Detalhes do sistema

Mac OS 10.12.4 (16E195)
zsh --version
zsh 5.3.1 (x86_64-apple-darwin16.3.0)
node --version
v7.9.0
yarn --version
0.23.2
brew --version
Homebrew 1.1.12
Homebrew/homebrew-core (git revision a29be4; last commit 2017-04-14)

Estou tendo um problema semelhante. A saída de yarn global bin é /usr/local/bin . Instalar o gulp-cli globalmente sem sudo ( yarn global add gulp-cli ) resulta em error We don't have permissions to touch the file "/usr/local/bin/gulp" . A instalação global com sudo ( sudo yarn global add gulp-cli ) é bem-sucedida, mas a execução de gulp gera bash: gulp: command not found .

Também muito peculiar: a execução de sudo gulp succeds (adivinhando algo errado com os permanentes, entrando em /usr/local/bin e executando ./gulp dá permissão negada, mas a execução com sudo funciona), executando yarn global ls ou sudo yarn global ls saídas

yarn global v0.22.0
warning No license field
Done in 0.26s.

Estou executando o Arch Linux com npm 4.5.0, yarn 0.22.0 e node v7.7.3.
E sim, /usr/local/bin está obviamente no meu caminho para o meu usuário e o usuário root.

EDIT (caminhos raiz e do usuário):

[steventheevil@Steven-PC Downloads]$ su
Password: 
[root@Steven-PC Downloads]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin
[root@Steven-PC Downloads]# exit
exit
[steventheevil@Steven-PC Downloads]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin

O mesmo no ArchLinux.

No meu caso, o pacote yo (e outros) foi instalado em /home/agilob/.config/yarn/global/node_modules/yo/lib . Estou tentando usar o jhipster, mas yanr afirma que usa /usr/bin para instalar pacotes:

$ yarn global bin
/usr/bin

Ele nem mesmo tem privilégios para criar arquivos lá.

Executando o comando:
/home/agilob/.config/yarn/global/node_modules/yo/lib/cli.js jhipster funcionou corretamente.

Obrigado @bcessa , estou tendo o mesmo problema. Usando o seguinte caminho $HOME/.config/yarn/global/node_modules/.bin funcione conforme o esperado.

Também estou vendo o problema do caminho global bin fora de sincronia:

  • macOS 10.12.4
  • node.js LTS instalado de nodejs.org pkg
  • yarn instalado pelo script de instalação
$ which node
/usr/local/bin/node

$ node --version
v6.10.2

$ which yarn
/Users/jdub/.yarn/bin/yarn

$ yarn --version
0.23.2

$ yarn global bin
/usr/local/bin

# But yarn global add installs to ~/.config/yarn/global, so I've added it to my path, e.g.

$ which testim
/Users/jdub/.config/yarn/global/node_modules/.bin/testim

@OmgImAlexis Não tenho certeza se é uma duplicata clara - há exemplos do problema que não envolvem node ou yarn instalado de homebrew.

Tudo bem, ainda é bom ter um ref entre os problemas no caso de um único commit corrige os dois problemas. 👍

Também experimentando isso com fio 0,22 em framboesa 😃

os pacotes instalados globalmente como CRA, eslint, etc. estão funcionando, basta localizar para mim.

mas yarn global ls não mostra nada além de feito

Esse problema também está presente quando o nó é instalado por nvm, não acho que seja específico do homebrew.

$(yarn global bin) já está no meu caminho, mas por exemplo:

> nvm install 6.10.2
> npm install -g yarn
> which yarn
~/.nvm/versions/node/v6.10.2/bin/yarn
> yarn global bin
~/.nvm/versions/node/v6.10.2/bin
> yarn global add yo
> ls ~/.nvm/versions/node/v6.10.2/bin
node    npm     yarn    yarnpkg

Neste exemplo, yarn global add yo não está gerando o binário yo no caminho do compartimento.

Aqui eu adicionei alguns testes aqui: https://github.com/yarnpkg/yarn/pull/3238 e para mim está fechado. Existem alguns casos esquivos, mas existem outros problemas.

@bestander

yarn instalado a partir de yarn-0.23.4.msi, plataforma: Windows 10, MinGW.
Meu comando global não funciona após yarn global add * .
Parece que o yarn armazena pacotes globais em:

%USERPROFILE%\AppData\Local\Yarn\config\global\node_modules\.bin

O comando global funciona depois de adicionado ao caminho do sistema.

Estou encontrando esse problema também usando o nvm.

O mesmo problema aqui:

sharikovvlad:global svlad$ node -v
v7.10.0
sharikovvlad:global svlad$ yarn --version
0.24.4
sharikovvlad:global svlad$ sw_vers -productVersion 
10.12.4
# macOS Sierra 10.12.4

Eu instalei o fio com o gerenciador de pacotes de cerveja.

Obviamente, resolvi o problema adicionando isso a .bash_profile :

export PATH="$(yarn global bin):$PATH"sharikovvlad:~ svlad$

Mas obviamente todos os pacotes serão quebrados após a atualização do nó.

Tentei fazer um yarn global add ios-deploy. O binário existe em ~ / .config / yarn / global / node_modules / ios-deploy / build / Release / mas não em / usr / local / bin ou em qualquer outro local, que está no PATH.

O mesmo problema no Node v7.8.0 e no Yarn versão v24.6 ... Também tentei usar a sinalização --prefix

yarn global add prettier --prefix /Users/newuser/.nvm/versions/node/v7.8.0/

Não funciona.

Não sei por que esse problema foi resolvido, se as pessoas ainda estão tendo problemas para descobrir onde diabos o fio está colocando binários, aparentemente instalando-os em uma ou mais pastas (.config e .npm), mas apontando para outra (adega), e se o site do yarn não documentou claramente esse problema com recomendações para maior clareza.

Não consigo fazer com que meu editor Atom encontre e use meu eslint global instalado pelo yarn.

Eu consegui contornar isso. O problema parece ser que a versão Homebrew do Node está se adicionando ao PATH depois da instalação do NVM. Depois que descobri isso, tudo que fiz foi desinstalar o Node Homebrew instalado e funcionou.

@volkanunsal Não tenho certeza se entendi o que você quis dizer

Desculpe, o que eu quis dizer é que, no meu caso, o problema era que eu também tinha outro
instalação do Node. O caminho dessa instalação foi adicionado após o NVM
instalação, e por isso estava tendo precedência. É onde o fio estava sendo colocado
os pacotes globais, mas não era o nó que eu estava usando, então meus comandos para
o pacote que instalei com o yarn global estava falhando. Isso pode não ser o
mesmo problema no seu caso, mas achei que valia a pena mencionar. Quando lá
são várias instalações do Node, o Yarn usará aquele cujo caminho é
adicionado mais recentemente ao PATH da sua máquina.

Para mim, consertado por definir o prefixo do fio e reinstalar todos os módulos

yarn config set prefix $(npm config get prefix)

Ao alternar as versões do nó via nvm, meu yarn global bin não está atualizando, o que parece ser a causa raiz do problema também.

ATUALIZAR:
Mesmo depois de consertar yarn global bin errado manualmente removendo a pasta ~/.yarn e reinstalando.
yarn global add appium ainda não cria nada na pasta bin global. Este recurso parece estar completamente quebrado ...

A resolução discutida aqui parece consertar isso. Adicione isto a .bash_profile

export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"

Não, na verdade não. Isso funciona para situações em que você tem acesso ao seu .bash_profile . A maioria dos programas em si não tem isso (execute npm test e seu package.json usa um binário, que é instalado globalmente com o yarn, você está sem sorte). Se você instalar algo globalmente, ele deve estar disponível instantaneamente, sem qualquer configuração adicional. Tudo bem se os binários forem instalados em uma pasta específica do yarn em qualquer lugar do disco, desde que haja um link simbólico para /usr/lobal/bin .

Meus casos de teste para esse comando seriam (sistemas do tipo unix):

  • Após a instalação do pacote, links simbólicos para binários são criados para /usr/local/bin .
  • Depois de atualizar os pacotes globais, certifique-se de que os links simbólicos ainda estão funcionando
  • Depois de atualizar o yarn (e potencialmente manter os pacotes globalmente instalados em algum lugar em uma pasta com versão do yarn, por exemplo, path/to/yarn/vX.Y.Z/packages/... ), certifique-se de que os links simbólicos ainda estão funcionando

Comportamento semelhante ao funcionamento do Homebrew.

Este é um grande problema quando você está tentando usar o Yarn dentro de um contêiner do Docker.

@gossi , esse não é um problema de correção direta.
Em muitos OS / usr / local / bin não está disponível, você pode precisar de acesso root a ele, um único local pode não ser suficiente se você usar várias versões do Node (nvm).

Sinta-se à vontade para propor uma solução ideal.

@bestander ok, vamos restringi-lo às plataformas onde /usr/local/bin está disponível;)
Nvm é outro problema que deve estar subordinado a este para jogar de mãos dadas.

@bestander como o NPM resolve esse problema? A solução deles é aplicável?

Existe alguém lá fora que deseja envolver sua cabeça em todos esses PATHs bin globais no sistema operacional?
Sinta-se à vontade para iniciar uma nova edição e enviar PRs.
O código que atualiza bins globais está aqui https://github.com/yarnpkg/yarn/blob/master/src/cli/commands/global.js#L72 , parece bastante simples.

Acho que podemos ter uma ótima experiência do usuário aqui, mas precisamos de ajuda.

@bestander acho que o problema está no updateCwd

envie um PR :)

https://github.com/yarnpkg/yarn/pull/3458 - um tanto relacionado também

Ainda tenho este problema :(

@JikkuJose Ainda estou tendo esse problema também. Eu uso o comando yarn global add prettier . Mais bonito é instalado no caminho .config/yarn/global/node_modules .

Eu adicionei yarn global bin ao meu $PATH (no meu sistema isso é /usr/local/bin ), mas isso não é útil quando não é onde as coisas estão sendo instaladas.

versão do fio: 0.27.5
versão do nó: v6.11.1

Estou usando o seguinte comando para instalar o Gulp:

$ yarn global add gulp

Mas, isso não me mostra nada:

$ ls -lah `yarn global bin` | grep gulp

$ cat /etc/issue
Ubuntu 17.04 \n \l
$ uname -a
Linux intrepid 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ node --version
v8.1.3
$ nvm --version
0.33.2

como isso ainda é um problema? npm não sofre com isso.

apenas dizendo.

Parei de usar fios só por causa disso. : /: /

Estava indo bem até o fio 1.1.0, agora meus globais não foram encontrados

success Installed "[email protected]" with binaries:
      - bower
✨  Done in 10.40s.
 $ bower
fish: Unknown command 'bower'
$ uname -a
Darwin wpa-25-242.dyn.huji.ac.il 16.3.0 Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:58 P
ST 2016; root:xnu-3789.31.2~1/RELEASE_X86_64 x86_64

@hookdump @Spongman @bennypowers, como você pode ver, este problema está encerrado. Seria ótimo se você pudesse registrar um novo problema com etapas de reprodução e alguns detalhes sobre a configuração do seu sistema (como você está tentando fazer isso como usuários root, quais pastas o yarn usa por padrão são habilitadas para gravação etc.) alguém pode reproduzir e iniciar trabalhando nisso.

Esse alguém também pode ser você se você estiver interessado!

E então link para ele aqui por favor, porque é para onde o Google enviou todos.

Talvez @hookdump , @Spongman ou @bennypowers estejam tendo o mesmo problema que eu? https://github.com/yarnpkg/yarn/issues/4702 ?

Por que o problema está fechado quando ainda está acontecendo?

@yordis, você está usando zsh ?

se for esse o caso, o problema # 4702 pode estar relacionado com o seu problema

se o seu ambiente PATH não estiver configurado corretamente, será necessário corrigir isso. Execute yarn global bin e echo $PATH para começar a investigar o problema resolvido

não deve ser fechado. ainda tem o problema.

@ lili21 registre um novo problema.

Eu tenho o mesmo problema, usando zsh. yarn global bin retorna /home/dandv/.yarn/bin , que não está em $ PATH.

~ yarn global add polymer-cli
yarn global v1.3.2
[1/4] Resolving packages...
warning polymer-cli > [email protected]: ...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/
warning polymer-cli > [email protected]: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
warning polymer-cli > polyserve > @types/[email protected]: See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/12826
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - polymer
Done in 25.08s.
➜  19:17 polymer
zsh: command not found: polymer
➜  19:17 polymer-cli init
zsh: command not found: polymer-cli
➜  19:17 yarn --version
1.3.2

como isso ainda é um problema? npm não sofre com isso.

Em seguida, descobrir como o npm lida com isso e enviar uma solicitação de pull?

A ÚNICA resposta do proprietário deste repo a este enorme segmento de reclamações sobre este problema é o grito antigo de falhas de qualidade de software de fonte aberta em todos os lugares: "conserte você mesmo"?

Projetos de código aberto são projetos comunitários. Yarn não é criado apenas por desenvolvedores do Facebook, mas por uma comunidade de código aberto mais ampla. Eu trabalho no Facebook, mas isso não está relacionado às minhas contribuições para o Yarn, já que geralmente trabalho nisso fora do horário de trabalho.

Estou cansado de ver as pessoas pensando que algo lhes é devido pela comunidade, sem dar nada em troca. Alguns desenvolvedores de código aberto agora desativam a seção de "problemas" de seus repositórios GitHub por esse motivo. Particularmente para projetos com uma pequena equipe de desenvolvimento, tentar trabalhar em cada problema é uma maneira fácil de se esgotar. A licença com a qual você concorda ao instalar qualquer software licenciado sob a licença BSD ou MIT (incluindo Yarn) especifica explicitamente que o software é fornecido no estado em que se encontra, sem garantia e sem garantia de adequação a um propósito específico.

Temos um ditado no Facebook: "Código vence argumentos". Em vez de reclamar de algo, reserve um tempo para consertar. é um uso mais produtivo do tempo. Esse é todo o espírito do código aberto: uma comunidade de pessoas contribuindo para um objetivo comum.

Quanto a este problema, para mim, parece que o diretório executável Yarn está faltando no $PATH . O instalador explica explicitamente como adicioná-lo ao seu caminho, e o instalador do Windows fará isso automaticamente para você (provavelmente devemos começar a fazer isso no pacote Debian também). A razão pela qual sugeri verificar o que o npm faz é que eles podem editar automaticamente o $PATH . Alguém precisaria fazer essa investigação e ver o que está fazendo. Qualquer um pode fazer isso.

Eu também acabei de encontrar esse problema. Pela primeira vez, experimentei fio + pacote e não conseguiu 'funcionar' devido a isso.

Por que este problema foi fechado quando ainda está acontecendo ?, eu tenho cerca de 2 semanas no fio e apenas hoje encontrei pkgs globais, e eles não funcionam bem com nvm. Além disso, eu fiz yarn config set prefix e --prefix e não funcionou, ele continua instalando no prefixo global padrão ...
Talvez eu tente consertar em mais alguns dias ...

Encontrei esse problema, como todos acima de mim. Minha expectativa era que _yarn_ instalaria pacotes exatamente no mesmo local que _npm_, ao usar o sinalizador -global .

Existem motivos ou cenários em que esta não seria a melhor ou a solução padrão?

  • As pessoas podem definir isso para algo diferente do padrão (eu faço).
  • Este caminho provavelmente já estará em nossas variáveis ​​de ambiente. (Ter solucionado isso como a primeira etapa após qualquer instalação _npm_ em uma máquina Windows.)
  • Um simples npm root -g ou npm config get prefix revela a localização dos módulos instalados globalmente.

IMO Acho que devemos considerar alterar o comportamento padrão de yarn global para instalar no mesmo local que o prefixo global _npm's_ .

Essa é uma ideia razoável, de fato.

Recentemente, tive um problema com caminhos globais em um Linux e era complicado
para encontrar o caminho que eu precisava adicionar ao PATH.

O contras é que esta pode ser uma mudança significativa para as pessoas que já têm
configurar seus caminhos de fio.
Em alguns casos, o bin npm global padrão é / usr / local / bin ou algo assim e
está implícito usá-lo com sudo, o que não é a abordagem do fio.

Gostaria de saber se o comando 'yarn global add' poderia apenas verificar se o bin instalado
localização está em PATH e imprime um aviso se não estiver?
Isso suavizaria as coisas?

Na sexta-feira, 5 de janeiro de 2018 às 5h12, Mark Drake [email protected] escreveu:

Encontrei esse problema, como todos acima de mim. Minha expectativa era que
yarn instalaria pacotes no mesmo local que o npm faz,
ao usar o sinalizador -global.

Existem razões ou cenários em que isso não seria o melhor ou
solução padrão?

  • As pessoas podem definir isso para algo diferente do padrão (eu
    Faz).
  • Este caminho provavelmente já estará em nossas variáveis ​​de ambiente.
    (Tendo resolvido isso como a primeira etapa após qualquer
    instalar em uma máquina Windows.)
  • Um simples prefixo npm root -g ou npm config get revela a localização
    de módulos instalados globalmente.

IMO, acho que devemos considerar mudar o comportamento padrão do fioglobal para instalar no mesmo local que o prefixo global do npm .

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

Eu me pergunto se o comando 'yarn global add' poderia apenas verificar se o local do compartimento instalado está em PATH e imprimir um aviso se não estiver?

Eu amo essa ideia Qualquer coisa diferente seria uma mudança significativa que fizemos na versão 1.0 e não acho que mudar isso de volta é uma boa ideia, a menos que haja outros motivos. Houve uma longa discussão sobre isso em https://github.com/yarnpkg/yarn/pull/3721 e questões de referências e PRs.

Um simples prefixo npm root -g ou npm config get revela a localização dos módulos instalados globalmente.

Yarn tem yarn global dir como equivalente.

Se você descobrir que os binários do typescript não estão instalados e você tem @angular/cli instalado, apenas remova-o e tente instalar o typescript novamente. Isso funcionou para mim.

Esquisito? Absolutamente!

@Fahrradflucht , absolutamente verdadeiro. É estranho porque os documentos não sugerem adicionar o caminho do

Usando o ubuntu 17.10, o seguinte resolveu o problema para mim:

$ echo export PATH = \ $ PATH: $ (yarn global bin) >> ~ / .profile
$ source ~ / .profile

@DavidNorena Os documentos realmente mencionam isso, mas como esta é uma etapa de configuração, ela reside na página de instalação. Mesmo assim, ainda não está muito claro como na guia Linux na página de instalação https://yarnpkg.com/en/docs/install a seção Configuração do

Mas ainda não está claro, eu não sabia que havia uma seção PATH SETUP , apenas segui os passos para minha versão Linux Box, mas não havia indicação se deveria ir para o final da página ou não.

Obrigado @jthegedus e da próxima vez, irei olhar todas as seções da documentação, ninguém sabe. : D

Tendo lidado repetidamente com esse problema, finalmente cheguei a uma solução para o meu cenário que pensei em compartilhar, caso isso ajude alguém.

Para referência, estou no MacOS (_Sierra_), usando zsh (e _oh-my-zsh_ instalado com _Homebrew_), NVM (_0.33.8_ instalado via _Homebrew_ _-- sem nó_)

O bin global /users/MyUserName/usr/local/bin e zsh não reconheceria os pacotes do Yarn instalados globalmente, pois não estavam em meu PATH . Embora eu pudesse ter adicionado meu caminho de usuários, decidi definir meu bin global Yarn para usar o /usr/local/bin , que já estava no PATH, que funcionou e não quebrará ao alternar as versões do Node com NVM .

Estou tendo um problema semelhante, especificamente com uma instalação global de typescript .

A execução de yarn global bin gera /usr/local/bin e todos os outros pacotes globais têm seus binários adicionados (vinculados simbolicamente) a /usr/local/bin como esperado.

Quando eu executo yarn global add typescript , a saída é:

[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed "[email protected]" with binaries:
      - tsc
      - tsserver
✨  Done in 4.89s.

Tentar executar tsc ou tsserver comandos resulta em command not found: tsc .
Olhando sob /usr/local/bin não mostra nem tsc nem tsserver binários.

  • Isso funciona bem ao usar npm (testado v5.6.0 )
  • Estou usando yarn v1.5.1 , macOS 10.13.3

@Nexxado Segui seus passos conforme você descreveu e recebi as mesmas mensagens do Yarn. No entanto, os pacotes foram instalados conforme o esperado e aparecem em /usr/local/bin . Digitar tsc -v gera Version 2.8.1 .
Estou usando nvm e node version 9.6.1 com npm 5.6.0 .

Você tentou instalar isso anteriormente e, em caso afirmativo, conseguiu verificar se ele foi removido? Tive problemas com certos pacotes que instalei com versões anteriores de npm ou homebrew que interferiam nas instalações globais via Yarn.

@SiriusBits

Você tentou instalar isso anteriormente e, em caso afirmativo, conseguiu verificar se ele foi removido? Tive problemas com certos pacotes que instalei com versões anteriores do npm ou homebrew que interferiam nas instalações globais via Yarn.

É possível, não me lembro se fiz.
Estou usando nvm com node v8.9.3 e npm 5.6.0 .

Você conseguiu consertar aqueles "certos pacotes" de que estava falando?

Desde já, obrigado :)

@Nexxado eu fiz. Eu tinha o Gulp CLI instalado com npm e não conseguia fazer a instalação global com o Yarn funcionar. Depois de removê-lo e reinstalá-lo com o Yarn, funcionou.

Instalei o node com asdf-nodejs e tenho o mesmo problema com o yarn 1.6.0 no macOS

adicionado esta linha no arquivo .zshrc resolveu o problema.

export PATH=/Users/rods/.asdf/installs/nodejs/8.9.4/.npm/bin:$PATH

Por que este problema foi encerrado? Estou enfrentando o mesmo problema no linux

@jthegedus @DavidNorena você estaria interessado em melhorar a documentação para que outras pessoas possam se beneficiar?

@BYK Vou vincular este problema no PR que crio esta semana: +1:

Enfrentando o mesmo problema na janela 10.

yarn global dir e yarn global bin estão ambos em% PATH%, mas não há binários instalados.

remover e adicionar novamente um pacote não ajudou.

Yarn 1.7.0
Node.js 10.3.0

O mesmo aqui.

Ainda quebrado em 1.10.1:

$ yarn global add typescript
yarn global v1.10.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 0.47s.

$ yarn global bin
C:\Users\mikem\AppData\Local\Yarn\bin

$ yarn global list
yarn global v1.10.1
Done in 0.14s.

vejo ppl adicionar caminho para .bashrc

export PATH="$(yarn global bin):$PATH"

export PATH = "$ (yarn global bin): $ PATH"

NB, bom, 666

O mesmo problema. Servidor instalado com yarn global add serve . Depois disso, o serviço inicial falha: "serve: comando não encontrado". Atualizar o PATH manualmente não me ajudou. Instalei o serve com npm e agora funciona. É muito estranho que esse problema tenha mais de 2 anos e ainda não tenha sido corrigido.

--Editar-- Resolvido. ver # 648
Ainda enfrentando esse problema. Yarn instalado no Fedora, estou usando nvm para gerenciar versões de nó. pug-cli instalado no fio globalmente. Executando o comando pug retornado não encontrado. Quando o pug-cli é instalado usando npm, o comando é executado.

# 648 (comentário) não ajuda?

Foi mal. Isso resolve o problema.

Estou encontrando o problema com o NVM em um contêiner do Docker puxando uma imagem CentOS. Não é um problema com o PATH estar incorreto. Eu vasculhei toda a imagem. Minhas instalações globais não estão sendo instaladas em lugar nenhum. Parece falhar na etapa 1/4, resolvendo pacotes.

export PATH="$(yarn global bin):$PATH"

Funciona para mim no Ubuntu.

sudo yarn global add ignite-cli
Funcionou para mim

Não consigo escrever para /usr/local/bin porque faltam sudo permissões:

$ yarn global add create-react-app
yarn global v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - create-react-app
error Cannot create "/usr/local/bin/create-react-app" due to insufficient permissions.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.

/usr/local/bin está em PATH , ~/.config/yarn/global/node_modules/.bin/ está em PATH mas nem yarn global nem yarn create são utilizáveis.

Tente atualizar para yarn 1.22.4 @hoefling. Além disso, isso pode ser um problema com sua configuração. Como você instalou o yarn?

@DanielRuf obrigado pela sua resposta! Tenho 1.22.4 instalado pelo administrador do sistema:

$ dnf info yarn
Yarn Repository                                                                                                                                                                    346 kB/s | 363 kB     00:01    
Installed Packages
Name         : yarn
Version      : 1.22.4
Release      : 1
Architecture : noarch
Size         : 5.1 M
Source       : yarn-1.22.4-1.src.rpm
Repository   : <strong i="8">@System</strong>
From repo    : yarn
Summary      : Fast, reliable, and secure dependency management.
URL          : https://yarnpkg.com/
License      : BSD
Description  : Fast, reliable, and secure dependency management.
...

Parece que o pacote vem do próprio repo de yarn .

yarn global v1.21.1

Em sua última resposta, foi 1.21.1.
Isso ainda acontece? Sugiro abrir um novo problema e verificar os outros problemas para obter soluções.

@DanielRuf você está certo, tentei configurar uma cópia local de yarn e fazer downgrade para ver se é uma regressão. Infelizmente, o erro também pode ser reproduzido com 1.22.4 . Abrirei um novo problema se eu não encontrar uma solução.

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

Questões relacionadas

esphen picture esphen  ·  3Comentários

catkins picture catkins  ·  3Comentários

davidmaxwaterman picture davidmaxwaterman  ·  3Comentários

chiedo picture chiedo  ·  3Comentários

sebmck picture sebmck  ·  3Comentários