Estou tentando instalar globalmente um módulo npm que acabei de publicar. Sempre que tento instalar, a partir do npm ou da pasta, recebo esse erro.
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
Estou usando o sudo e verifiquei três vezes tudo no pacote, tudo deve funcionar. Pesquisei ao redor e vi alguns casos de simulação, nenhum dos quais foi resolvido. Aqui está o que eu tentei.
- Atualizar npm (
sudo npm install -g npm
) - Limpe o cache npm global (
sudo npm cache clear
) - Limpe o cache npm do usuário (
npm cache clear
)
Notei que o erro tinha a ver com o arquivo que estou vinculando ao caminho, especificamente quando o npm tentou fazer um chmod. Isso não deveria ser um problema, meulib/cli.js
possui permissões normais e o npm possui permissões de superusuário durante esta instalação.
Depois de pesquisar nos documentos do npm, encontrei uma opção que impediria o npm de criar os links bin (--no-bin-links
); quando tentei instalar com ele, funcionou bem.
Então, qual é o problema? Isso é algum bug estranho de franja que ainda não tem solução?
Edit: Para referência, aqui está o módulo que eu enviei
--no-bin-links
apenas interrompe o npm de vincular arquivos nobin
hash do package.json ao caminho na instalação global.Respostas:
Ok, parece que o NPM está usando o seu
.gitignore
como base para o.npmignore
arquivo e, portanto, ignora/lib
. Se você adicionar um espaço em branco.npmignore
arquivo em à raiz do seu aplicativo, tudo deverá funcionar.[editar] - mais informações sobre esse comportamento aqui: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
fonte
Eu tive um problema semelhante,
Resolvi-o.
fonte
npm cache verify
e funcionou. obrigado pela dica.npm install --cache /tmp/empty-cache
usar um cache temporário em vez de neutralizar o real.De algum modo, esse problema surgiu para mim no Mac quando eu estava tentando executar
npm install -g bower
. Isso estava me dando uma série de erros por não conseguir encontrar coisas como graceful-fs. Não tenho certeza de como instalei o npm originalmente, mas parece que ele veio com o nó usando homebrew. Eu corri pela primeira vezIsso removeu ambos
node
enpm
do meu caminho. A partir daí, eu apenas reinstaleiQuando se completou eu tinha
node
enpm
no meu caminho e eu era capaz de correrEste, então, foi instalado com sucesso.
Atualizar as fórmulas de preparação e atualizar as instalações não pareceu funcionar para mim, não sei por que. A remoção da
.npm
pasta foi algo que funcionou para outras pessoas, e eu tentei sem sucesso. Eu fiz desta vez apenas por precaução. Observe também que nenhum dos itens a seguir resolveu o problema para mim, embora o tenha feito para outros:fonte
Eu estava recebendo esse erro na instalação do npm e a adição do .npmignore não o solucionou.
Tentei ir para a pasta mencionada e ela não existia. O erro foi corrigido quando criei a pasta npm na pasta Roaming .
Isso está no Windows 8.1
fonte
Eu tive o mesmo problema e encontrei uma manipulação não mencionada aqui. Embora eu contribuísse para a comunidade:
npm install -g myapp
não estava copiando obin
diretório. Eu achei que era porque eu não o incluífiles
no meupackage.json
fonte
files
chave na minhapackage.json
com algumas entradas comoindex.js
eLICENSE
, mas não abin
pasta. Portanto, funciona se não houver nenhumafiles
chave ou se houver umafiles
chave E abin
pasta em.Eu estava recebendo um erro semelhante
npm install
em uma instalação local:Não sei ao certo o que estava causando o erro, mas recentemente instalei alguns novos módulos de nó localmente, atualizei o nó com homebrew e executei 'npm update -g'.
A única maneira de resolver o problema foi excluir o diretório local node_modules por inteiro e executar
npm install
novamente:fonte
Eu tenho um problema semelhante especificamente: ERR! enoent ENOENT: não existe esse arquivo ou diretório, chmod 'node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv Tentei todas as soluções acima, mas sem sorte. Eu estava usando a caixa vagrant, e o projeto estava em uma pasta compartilhada. Os problemas parecem estar lá apenas, quando movo o projeto para outra pasta não compartilhada (woth host), pronto! problema resolvido. Apenas no caso de outra pessoa estar usando também vagabundo
fonte
Recebi uma mensagem de erro semelhante ao tentar
npm install
um monte de dependências. Acontece que alguns deles não conseguem instalar no Debian / Ubuntu porque esperam/usr/bin/node
ser o nó executável. Para corrigir, você precisa fazerou melhor ainda,
Para mais informações: https://stackoverflow.com/a/21171188/7581
fonte
Encontrei um comportamento semelhante após a atualização para o npm
6.1.0
. Pareceu funcionar uma vez, mas entrei em um estado com esse erro ao tentar instalar um pacote que foi especificado por path no sistema de arquivos:O seguinte não resolveu o problema :
rm -rf node_modules
npm cache clean
(deunpm ERR! As of npm@5, the npm cache self-heals
....use 'npm cache verify' instead.
)npm cache verify
rm -rf ~/.npm
Como resolvi o problema :
rm package-lock.json
fonte
Acho que seu script de café compilado está ausente do pacote npm publicado. Tente escrever um comando de pré - publicação .
fonte
takeapeek/lib/cmd.js
que não existe. Mesmo que a pasta lib possa estar 'lá' quando você publicar, ela não estará 'lá' quando você instalar via npm, a menos que faça parte do repositório ou que você use a pré-publicação para criá-lo.No meu caso (código múltiplo ENOENT errno 34), o problema estava no
~/.npm/
acesso ao diretório. Dentro dele, havia alguns subdiretórios comroot:root
direitos, que estavam causando problemas enquanto eu executava comandos como usuário normal (semsudo
). Então, mudei a propriedade de todos os subdiretórios e arquivos dentro de~/.npm/
dir no meu usuário e grupo local. Isso fez o truque no meu Ubuntu (no Mac também deve funcionar).Você deve saber seu nome de usuário, certo? Se não, execute
$ whoami
e substitua também o nome do seu grupo, assim:EDITAR:
Caso de teste :
Na minha conta local,
/home/johnb
instalei npm globalmente algum gerador parayeoman
, como este:Natureza do problema :
A ação acima fez com que algumas dependências fossem instaladas dentro do
~/.npm/
dir, possuindoroot:root
propriedade (por causa desudo ...
). Evidentemente, o npm não é executado como usuário local (ou as dependências de alteração subdividem a propriedade posteriormente) ao extrair dependências e gravá-las em um subdiretório do usuário local~/.npm/
. Desde que o npm seja tão descuidado em relação a questões fundamentais de segurança do sistema de arquivos unix, o problema ocorrerá novamente.Solução :
Verifique continuamente se há
~/.npm/
subdiretórios com propriedade (e / ou permissões) diferentes da sua conta de usuário local, especialmente quando você instala ou atualiza algo comsodo
(raiz). Nesse caso, altere a propriedade interna~/.npm/
para um usuário local recursivamente.Peça à
npm, bower, grunt, ...
comunidade que eles resolvam esse problema como eu o descrevi acima.fonte
Eu recebi esse erro ao tentar instalar um plug-in grunt. descobri que tinha uma versão desatualizada do npm e o erro desapareceu após a atualização do npm para a versão mais recente
fonte
Eu tentei todas as coisas que encontrei na rede (
npm cache clear
erm -rf ~/.npm
), mas nada parece funcionar. O que resolveu o problema foi a atualização do nó (e npm) para a versão mais recente. Tente isso.fonte
No Windows, tive um erro semelhante. Pesquise e cole Dados do aplicativo e procure a string
npm
.Substituí a string
'npm'
(incluindo aspas) por'npm.cmd'
inatlasboard\lib\package-dependency-manager.js
eatlasboard\lib\cli\commands.js
. Isso resolveu o problema.fonte
O mesmo erro durante a instalação global (
npm install -g mymodule
) para o pacote com um script não existente.No package.json:
Mas o
./bin/module
não existia, como foi nomeadomodulejs
.fonte
fonte
Você pode obter esse erro se o seu node.js também estiver corrompido. Corrigi esse erro desinstalando / reiniciando / instalando o node.js completamente e o erro foi corrigido, juntamente com os outros três erros misteriosos lançados.
fonte
Cuidado com valores inválidos para as chaves "diretórios" e "arquivos" em package.json
Se você inicia com um novo aplicativo e deseja iniciar completamente em branco, é necessário iniciar em uma pasta vazia completa ou ter um arquivo package.json válido.
Se você não deseja criar um arquivo package.json primeiro, digite:
npm i some_package
O pacote com o nome "some_package" deve ser instalado corretamente em uma nova subpasta "node_modules".
Se você criar um arquivo package.json primeiro, digite:
npm init
Mantenha todos os padrões (apenas clicando em ENTER), você deve terminar com um arquivo válido.Deve ficar assim:
Observe que as seguintes chaves estão ausentes: " diretórios ", " repositório " e " arquivos ". Parece que se você usar valores incorretos para " diretórios " e / ou " arquivos ", não poderá instalar o pacote. Deixando essas chaves, resolvi o problema para mim.
Observe também a tecla " main ". Este está presente, mas contém um valor inválido. Nenhum arquivo "index.js" existe (ainda). Você pode removê-lo com segurança.
Agora digite:
npm i some_package
e o pacote com o nome "some_package" deve ser instalado corretamente em uma nova subpasta "node_modules".fonte
Tentei quase tudo, então finalmente isso:
Simplesmente remova node_modules e execute
'npm install'
novamentefonte
Eu tive um problema semelhante com uma causa diferente: o
yo node
gerador foi adicionado"files": ["lib/"]
ao meupackage.json
e, comocli.js
estava fora dolib/
diretório, ele foi ignorado ao publicar no npm.(Problema da Yeoman em https://github.com/yeoman/generator-node/issues/63, isso deve ser corrigido em breve.)
fonte
Eu estava recebendo o erro "Erro: ENOENT, stat 'C: \ Users \ nome_do_usuário \ AppData \ Roaming \ npm'. Mas não havia esse diretório. Criou o diretório e a instalação do npm começou a funcionar
fonte
Recentemente, atualizei para o nó 4.2.1 em uma máquina Windows 7 x64. Ao executar
Eu recebi um erro semelhante:
Pensando que estava relacionado ao caminho do AppData, brinquei com
e
para alterar os campos prefixo, cache e tmp, mas recebeu o mesmo erro com os novos caminhos:
Todos os comandos foram executados como administrador, então eu tinha permissões totais.
Então, pensei que havia alguns problemas com os arquivos existentes, então executei:
Mas tenho o mesmo erro. No entanto, ainda havia alguns arquivos temporários por aí. A remoção manual de todos os dados temporários com cygwin finalmente corrigiu o problema para mim:
Se você tiver apenas o cmd do Windows, poderá usar algo como
remover todos os subdiretórios (embora se você tiver dependências de nós profundamente aninhadas, isso é notoriamente problemático)
Portanto, talvez haja alguns problemas com a atualização do npm e com versões do bower ou outros pacotes por aí. No meu caso, esse parecia ser o problema
fonte
Ao instalar o iônico, fiquei abaixo do erro
Não havia nenhuma pasta chamada
ansi
nesse caminho. Eu criei lá e ele foi instalado corretamente.fonte
Se você tentou "fazer a instalação" no diretório do projeto com este erro, tente:
então você pode tentar "fazer a instalação"
Se você tiver o "npm ERR! Enoent ENOENT: esse arquivo ou diretório, chmod '... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js'", poderá tentar instalar alguma versão anterior do js-beautify, mais comentários: https://github.com/beautify-web/js-beautify/issues/1247
e a execução "make install". Parece funcionar caso você não tenha outras dependências que exijam a versão superior (1.7.0). Nesse caso, você deve fazer o downgrade desses pacotes também no packages.json.
ou
fonte
Nenhuma das opções acima funcionou para mim. Mas
yarn install
trabalhou, depoisnpm i
começou a trabalhar. Não tenho certeza de que fio consertou, mas solução rápida e fácil!fonte
Primeiro faça
então faça
Depois disso, instale os arquivos que você deseja adicionar
fonte
Ocorreu um erro semelhante ao npm em um contêiner do docker para o webpack. O problema foi causado pelo argumento da linha de comando --user da execução do docker, porque o usuário e o grupo especificados lá de alguma forma interferiram nos direitos do volume local. Espero que isso ajude alguém :)
fonte
Eu estava enfrentando erro semelhante, mas tentei executar o comando create-react-app muitas vezes e, finalmente, ele foi criado. Esse era o problema da minha conexão com a Internet. verifique sua conexão com a internet
fonte
Por favor tente isto
Em seguida, tente esse comando.
fonte