Yarn: Erro ao adicionar pacote tarball remoto

Criado em 15 abr. 2017  ·  4Comentários  ·  Fonte: yarnpkg/yarn

Você quer solicitar um recurso ou relatar um bug ?
Reportar um erro

Qual é o comportamento atual?

Ao adicionar um pacote tarball remoto, ocorre um erro:

erro Ocorreu um erro inesperado: " https://github.com/blikblum/cherrytree/releases/download/svelte-2.4.2/build.tar.gz : EISDIR: operação ilegal em um diretório, abra '/ home / luiz / .cac
he / yarn / v1 / .tmp / 9417ab587e459fe380a7e913f4160254 / '".

Se o comportamento atual for um bug, forneça as etapas para reproduzi-lo.

Em uma pasta vazia:

yarn init // criar um projeto fictício
yarn add https://github.com/blikblum/cherrytree/releases/download/svelte-2.4.2/build.tar.gz

Atualizando manualmente as dependências em package.json como

dependencies: {
 "cherrytree": "https://github.com/blikblum/cherrytree/releases/download/svelte-2.4.2/build.tar.gz"
}

e fazendo yarn install o erro também ocorre

Qual é o comportamento esperado?
Pacote do link https://github.com/blikblum/cherrytree/releases/download/svelte-2.4.2/build.tar.gz
deve ser instalado e adicionado às dependências

Mencione seu node.js, yarn e versão do sistema operacional.
Fio 0.23.2
Nó 6.10
Linux Mint 17.3 e Windows 10

cat-bug cat-documentation good first issue help wanted triaged

Comentários muito úteis

Ei, lutei com esse erro por um tempo quando finalmente consegui encontrar a causa raiz, pelo menos no meu caso:

Para que .tar.gz seja usado por yarn add ele deve ter os nomes dos arquivos começando com ./ . Eu verifiquei seu tarball e todos os arquivos estão listados sem o diretório local principal ref ( tar -tf build.tar.gz ).

Isso pode ser corrigido simplesmente modificando como você se refere aos seus arquivos ao chamar o comando tar (ou seja, passando "./*" em vez de "*"). Ou se você estiver criando programaticamente, altere os nomes dos arquivos nos cabeçalhos.

Todos 4 comentários

arquivo yarn-error.log:

Arguments: 
  /usr/bin/nodejs /usr/bin/yarn add https://github.com/blikblum/cherrytree/releases/download/svelte-2.4.2/build.tar.gz

PATH: 
  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Yarn version: 
  0.23.2

Node version: 
  6.10.2

Platform: 
  linux x64

npm manifest: 
  {
    "name": "testproj",
    "version": "1.0.0",
    "main": "index.js",
    "license": "MIT"
  }

yarn manifest: 
  No manifest

Lockfile: 
  No lockfile

Trace: 
  Error: https://github.com/blikblum/cherrytree/releases/download/svelte-2.4.2/build.tar.gz: EISDIR: illegal operation on a directory, open '/usr/local/share/.cache/yarn/v1/.tmp/9417ab587e459fe380a7e913f4160254/'
      at Error (native)


Ei, lutei com esse erro por um tempo quando finalmente consegui encontrar a causa raiz, pelo menos no meu caso:

Para que .tar.gz seja usado por yarn add ele deve ter os nomes dos arquivos começando com ./ . Eu verifiquei seu tarball e todos os arquivos estão listados sem o diretório local principal ref ( tar -tf build.tar.gz ).

Isso pode ser corrigido simplesmente modificando como você se refere aos seus arquivos ao chamar o comando tar (ou seja, passando "./*" em vez de "*"). Ou se você estiver criando programaticamente, altere os nomes dos arquivos nos cabeçalhos.

Obrigado. Isso funcionou. Deixando em aberto já que pelo menos uma nota na documentação está em ordem

Ei pessoal,
Eu adicionei um aviso que informa o usuário sobre esse comportamento e sugere a solução.
Criado PR # 4898 para o mesmo

Esta é minha primeira contribuição para o fio, então, por favor, me diga se eu perdi alguma coisa. Obrigado.

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