Depois de puxar um módulo do GitHub para baixo e seguir as instruções para construí-lo, eu tento puxá-lo para um projeto existente usando:
> npm install ../faye
Isto parece fazer o truque:
> npm list
/home/dave/src/server
└─┬ [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
Mas o Node.js pode't 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 eu'estou um pouco perdido quanto a onde olhar a seguir. Alguma sugestão?
Utilizando npm install' instala o módulo apenas no diretório atual (em um subdiretório chamado
node_modules'). O app.js está localizado em home/dave/src/server/
? Se não e você quiser utilizar o módulo de qualquer diretório, você precisa instalá-lo globalmente utilizando npm install -g
.
Eu normalmente instalo a maioria dos pacotes localmente para que eles sejam verificados junto com o código do meu projeto.
Update (8/2019):
Atualmente você pode usar o arquivo package-lock.json, que é gerado automaticamente quando o npm modifica seu diretório de módulos_de_nó. Portanto você pode deixar de verificar os pacotes, porque o arquivo package-lock.json
rastreia as versões exatas dos seus módulos_node, você're atualmente utilizando. Para instalar pacotes do package-lock.json
em vez do package.json
utilize o comando npm ci
.
Update (3/2016):
I'recebi muitas falhas para minha resposta, especificamente que eu verifico nos pacotes dos quais meu código depende. Alguns dias atrás, alguém ineditou todos os seus pacotes (_COPY11@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.kq9s64clp) que quebraram o React, Babel, e quase tudo mais. Espero que esteja claro agora que se você tem código de produção, você pode'não confiar no NPM mantendo suas dependências para você.
Eu tinha um problema muito parecido. Remover toda a pasta node_modules
e reinstalar funcionou para mim:
rm -rf node_modules
npm install
Mude o diretório e aponte para a pasta do seu projeto atual e depois "npm install". .
Isto irá instalar todas as dependências e módulos na pasta do seu projecto.