Depois de puxar um módulo do GitHub e seguir as instruções para construí-lo, tente puxá-lo para um projeto existente usando:
> npm install ../faye
Isso parece fazer o truque:
> npm list
/home/dave/src/server
└─┬ faye@0.7.1
├── cookiejar@1.3.0
├── hiredis@0.1.13
└── redis@0.7.1
Mas o Node.js não consegue encontrar o módulo:
> node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'faye'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
Eu realmente quero entender o que está acontecendo aqui, mas estou um pouco sem saber como procurar a seguir. Alguma sugestão?
node_modules
diretório é esperado para estar na raiz do seu projeto, alongisdeapp.js
no seu caso. Por que você usou..
o caminho de instalação do npm?Respostas:
Usar
npm install
instala o módulo apenas no diretório atual (em um subdiretório chamadonode_modules
). O app.js está localizado abaixohome/dave/src/server/
? Caso contrário, e você deseja usar o módulo em qualquer diretório, é necessário instalá-lo globalmente usandonpm install -g
.Normalmente, instalo a maioria dos pacotes localmente para que eles sejam verificados junto com o código do meu projeto.
Atualização (8/2019):
Atualmente, você pode usar o arquivo package-lock.json , que é gerado automaticamente quando o npm modifica o diretório node_modules. Portanto, você pode deixar de fazer check-in dos pacotes, porque controla
package-lock.json
as versões exatas dos seus node_modules que você está usando no momento. Para instalar pacotes depackage-lock.json
vez depackage.json
uso do comandonpm ci
.Atualização (3/2016):
Recebi muitas críticas por minha resposta, especificamente por verificar os pacotes dos quais meu código depende. Alguns dias atrás, alguém não publicou todos os seus pacotes ( https://kodfabrik.com/journal/i-ve-just-liberated-my-modules ) que quebraram o React, Babel e quase todo o resto. Espero que esteja claro agora que, se você tiver um código de produção, não poderá confiar no NPM que realmente mantém suas dependências para você.
fonte
package.json
lista de quais módulos npm você depende e ignorar anode_modules
pasta. Em seguida, bastanpm install
obter a configuração depois de clonar o repositório.package.json
listar as dependências, gosto de manter boas cópias conhecidas das coisas das quais dependo. O espaço em disco é barato e se o npm ou o pacote desaparecer do npm, ainda terei um projeto totalmente funcional no meu repositório.Eu tive um problema muito semelhante. Remover a
node_modules
pasta inteira e reinstalar funcionou para mim:fonte
npm install
/npm update
não vai resolver. Isso resolveu um problema em que eraError: Cannot find module 'http-errors'
exibido aleatoriamente quando eu tentava executar meu aplicativo Express.npm install
.Por exemplo, se o erro for:
então você pode resolver esse problema executando o comando
npm install --save form-data
.fonte
ng new project-name
lo mostrando alguns módulos ausentes ... Eu tive que instalá-los cada um usando o comando fornecido. existe algum comando para instalar todos eles de uma só vez?Para usuários TypeScript, se você estiver importando um módulo Nó interno (como
http
,path
ouurl
) e recebendo um erro como o mesmo"Cannot find module "x"
, o erro pode ser corrigido executandoO comando importará as definições do NodeJS TypeScript para o seu projeto, permitindo que você use os módulos internos do Node.
fonte
Isso acontece quando uma primeira npm instalação do falha por algum motivo (SIGINT de npm) ou quando o atraso é muito longo ou os dados estão corrompidos. Tentar instalar o npm novamente não salvará o problema.
Ocorreu um erro na primeira verificação do npm, portanto, a melhor opção é remover o arquivo e reiniciar a instalação do npm.
fonte
npm cache clear
e limpando node_modules seguido pornpm install
para corrigir meu problema.Se você usar o nvm, verifique se node_modules existentes que são ligações a outras bibliotecas são compilados para a versão correta do Node.js.
Eu estava tendo o mesmo erro. O motivo foi o seguinte: Usamos o nvm, pois estamos executando dois aplicativos em um servidor, um requer o Node.js. 5.6 porque ele usa o node-gd (que não roda no Node.js. 6 por enquanto), o outro requer Node.js 6. O Node.js 6 é a instalação do apt-get .
Também usamos a ferramenta pm2 para implantar.
Portanto, a configuração padrão é que o processo pm2 seja iniciado quando o nvm não estiver em vigor, portanto, ele usa a instalação apt-get do Node.js. (versão 6). Portanto, o daemon pm2 principal inicia com o Node.js 6. Se eu executar aplicativos no modo de bifurcação, eles iniciarão em processos separados e as configurações de nvm entrarão em vigor. Quando executo aplicativos no modo de cluster - eles herdam o ambiente não-nvm.
Portanto, quando tentei alternar para o modo de cluster, o aplicativo falhou ao iniciar porque as ligações compiladas para 5.6 falharam com esta mensagem.
Eu consertei isso reiniciando o pm2 quando as configurações da nvm estão em vigor. Os scripts de inicialização também devem ser corrigidos.
fonte
Verifique se a variável de ambiente NODE_PATH está configurada corretamente e apontando para o caminho node_modules. nodejs usa essa variável para procurar as bibliotecas
fonte
Ontem, ocorreu este erro. Demorei um pouco para perceber que a
main
entradapackage.json
estava apontando para um arquivo que eu havia movido. Uma vez eu atualizei que o erro desapareceu e o pacote funcionou.fonte
main
entrada para o meu submódulo em um diretório que foi excluído de seu repositório; portanto, quando tentei incluí-lo pornpm install
ele funcionava, mas nenhuma exportação foi encontrada quando necessário! Muito obrigado por esta resposta óbvia, mas útil.Remova sua
node_module
pasta raiz do seu projeto (por exemplomyApp
:). Vá para amyApp
pasta e digite o comando abaixo do terminalEle instalará todos os módulos de dependência necessários para o seu projeto.
fonte
Este erro pode ser encontrado se você estiver
require
usando um módulo que possui ummain
campo ausente ou incorreto em seu package.json. Embora o próprio módulo esteja instalado, o npm / node precisa usar um único arquivo .js como um ponto de entrada para o seu módulo. Se omain
campo não estiver lá, o padrão será procurarindex.js
na pasta do seu módulo. Se o arquivo principal do seu módulo não for chamado index.js, ele não poderárequire
.Descoberto ao transformar um
browserify
módulo baseado em umrequire
módulo compatível com CommonJS ;browserify
não se importava com omain
campo ausente e, portanto, o erro passou despercebido.fonte
Especifique o caminho para a pasta restler, que estará dentro da pasta node_modules como: var rest = require ('./ node_modules / restler');
Isso funcionou para mim.
fonte
Se você estiver usando texto datilografado e obtendo um erro após instalar todos os módulos do nó, remova-o
package-lock.json
. E então corranpm install
.fonte
DICA PRO:
Esse erro aconteceu comigo, enquanto lutava contra a fadiga e doenças leves, porque eu digitei em
node blah
vez denpm blah
.A mensagem de erro recebida não estava com raiva o suficiente para me alertar sobre minha própria loucura!
fonte
Eu enfrentei o mesmo problema quando alguém da equipe atualizou
package.json
no SVN. A simples remoção donode_modules
diretório não ajudou. Como eu resolvi o problema é:Espero que isso ajude alguém!
fonte
npm install
tudo está bem novamente.package.json
como o NPM sabe o que instalar?Eu posso adicionar mais um lugar para verificar; o pacote que eu estava tentando usar era outro dos meus próprios pacotes que publiquei em um repositório particular do NPM. Eu tinha esquecido de configurar a propriedade 'main' no package.json corretamente. Portanto, o pacote estava lá na pasta node_modules do pacote consumidor, mas eu estava recebendo "não é possível encontrar o módulo". Levei alguns minutos para perceber meu erro. :-(
fonte
No meu caso, eu estava
UNMET PEER DEPENDENCY redux@^3.0.0
causando essa mensagem de erro, veja todos eles e instale os módulos ausentes novamente usando --savefonte
Remover o nó / npm e reinstalar a versão estável (não a mais recente) funcionou para mim.
fonte
No Appsome Solutions , tivemos o mesmo problema com a configuração do nosso projeto de texto datilografado e o
"moduleResolution": "node",
resolvemos em um tsconfig.json.fonte
Eu estava tentando publicar meu próprio pacote e incluí-lo em outro projeto. Eu tive esse problema por causa de como eu construí o primeiro módulo. Estou usando a exportação do ES2015 para criar o módulo, por exemplo, digamos que o módulo tenha a seguinte aparência:
Depois de compilado com Babel e antes de ser publicado:
Então, depois
npm install module-name
em outro projeto (nenhum ES2015) eu tive que fazervar hello = require('module-name').default;
Para realmente ter o pacote importado.
Espero que ajude!
fonte
Foi encontrado esse problema ao usar
webpack
comwebpack-dev-middleware
.Transformara um único arquivo em uma pasta .
O observador parecia não ver a nova pasta e o módulo estava ausente.
Corrigido reiniciando o processo.
fonte
Acabei de encontrar um cenário incomum que pode ser útil para alguém e é uma espécie de arenque vermelho.
Eu também estava recebendo o erro Cannot Find Module, mas estranhamente tudo funcionou perfeitamente no meu ambiente Node.js. local (hospedado pelo Mac). Esse problema só apareceu quando o código foi implantado em nosso servidor Linux.
Bem ... acabou sendo um erro de digitação que (aparentemente) a instalação do Node.j com base em Mac estava perfeitamente feliz em ignorar.
O include era assim:
Mas o arquivo real foi chamado "s3Uploader.class.js"
Observe a diferença de maiúsculas e minúsculas no 's' vs. 'S' entre o código e o nome do arquivo.
Portanto, na chance ímpar de que nenhuma das outras soluções aqui esteja resolvendo seu problema, verifique três vezes se você não está interpretando incorretamente os caracteres no nome do arquivo incluído! :)
e DUH!
fonte
Talvez como eu, você defina 'view engine' expressamente em um mecanismo que não existe ou tente usar um mecanismo de modelo não registrado. Certifique-se de usar:
app.engine('engine name',engine) app.set('view engine','engine name')
fonte
Instale a nova CLI v3 (npm install -g ionic @ latest).
Se esse problema ainda for um problema na CLI v3. Obrigado!
fonte
Se o pacote instalado com êxito, vá para a pasta node_modules, verifique o arquivo e o caminho. Então importe. Espero que isto ajude.
fonte
Antes de tudo, sim, uma parte da minha resposta definitivamente é útil para resolver o erro postado pelo OP. Em segundo lugar, depois de tentar a etapa abaixo, enfrentei alguns outros erros e, assim, escrevi a solução deles também.
(Psst! Não sei se ajudei a solucionar o erro acima com êxito ou se violei alguma regra ou formato de resposta, mas enfrentei o erro acima e alguns outros e demorei muito tempo para encontrar as soluções adequadas para esses erros. Estou escrevendo a solução completa porque, se outra pessoa também enfrentar esses erros, esperamos que ele obtenha uma solução aqui.)
Então, adicionando e elaborando a resposta fornecida por PrashanthiDevi , e também adicionando minha experiência pessoal, aqui está:
Eu sou novo em toda a parte e2e e testes de unidade. Comecei a analisar essa parte do transferidor . Agora eu já tinha os arquivos nos quais os testes foram gravados, mas tive que executar os testes.
Eu já tinha instalado todos os softwares e ferramentas necessários, mas quando executei o código para executar os testes,
gulp itest
recebi o erro 'Não é possível encontrar o módulo' . Depois de passar por muitas perguntas diferentes sobre o SO, encontrei uma resposta que pensei que poderia ajudar a obter uma solução.A pessoa sugeriu executar o comando
npm install
na minha pasta do projeto.O motivo para fazer isso foi atualizar a pasta node-modules , dentro da pasta do projeto, com todos os arquivos e dependências necessários e necessários.
(A parte abaixo pode ser irrelevante para esta pergunta, mas pode ser útil se alguém se deparar com a mesma situação que eu enfrentei.)
O passo acima certamente resolveu meu erro anterior, mas lançou um novo! Desta vez, o erro está sendo
Could not find chromedriver at '..\node_modules\protractor\selenium\chromedriver'
.No entanto, a solução desse erro foi bem boba (e engraçada) para mim. Eu já tinha o arquivo chromedriver na minha pasta selênio . Mas acontece que o erro acima estava ocorrendo porque meus arquivos do chromedriver estavam dentro da pasta selenium e não dentro da pasta chromedriver . Então, criar uma pasta do chromedriver e copiar os arquivos do chromedriver resolveu o meu problema!
Além disso, pelo erro: Tempo limite esgotado, aguardando o servidor WebDriver , você pode adicionar esta linha de código ao arquivo conf.js. dentro
exports.config{}
:seleniumAddress: 'http://localhost:8080/'
Espero que isto ajude!
fonte
Eu tenho a solução simples para resolver esse problema.
Basta remover C: \ Users \ UserName \ AppData \ Roaming \ npm \
e instale o nó.
Agora seu problema será resolvido.
fonte
Execute apenas o seguinte comando:
Ele instalará todos os módulos necessários na
node_modules
pasta.fonte
isso funciona para mim.
fonte
Mude o diretório e aponte para a pasta do projeto atual e, em seguida, "npm install". .
Isso instalará todas as dependências e módulos na pasta do projeto.
fonte
npm install
no diretório correto. Não há nada de negativo nisso