Eu escrevi um módulo que publiquei no npm há um momento (https://npmjs.org/package/wisp)
Portanto, ele instala bem a partir da linha de comando:
$ npm i -g wisp
No entanto, quando eu o executo na linha de comando, continuo recebendo um erro que o otimista não está instalado:
$ wisp
Error: Cannot find module 'optimist'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:12:10)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:96:4)
at Module._compile (module.js:449:26)
at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29)
at fs.stat.notSources.(anonymous function) (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18)
No entanto, eu especifiquei no package.json como uma dependência:
{
"name": "wisp",
"author": "Brendan Scarvell <[email protected]>",
"version": "0.1.0",
"description": "Global nodejs file server",
"dependencies": {
"optimist": "~0.3.4"
},
"repository": "git://github.com/tehlulz/wisp",
"bin": {
"wisp" : "./wisp"
}
}
Alguém sabe o que fazer para fazer isso funcionar? Eu sei que tem a ver com a parte bin adicionando o executável a bin e o node_modules nesse diretório estar vazio. Não faço ideia de como resolver isso.
./node_modules/wisp/wisp
que funciona bem.Respostas:
Para qualquer outra pessoa que enfrenta isso, tive esse problema devido à minha
npm
instalação em um local que não está no meuNODE_PATH
.Meu NODE_PATH estava vazio e a execução
npm install --global --verbose promised-io
mostrou que estava sendo instalado no/opt/lib/node_modules/promised-io
:Meu script falha em
require('promised-io/promise')
:Eu provavelmente instalei o nó e o npm da fonte usando
configure --prefix=/opt
. Não faço ideia por que isso os tornou incapazes de encontrar os módulos instalados. A correção no momento é apontar NODE_PATH no diretório certo:Meu
require('promised-io/promise')
agora é bem sucedido.fonte
export NODE_PATH=...
configurá-lo no shell local para que ele fosse exportado para comandos executados nesse shell. Para tornar a alteração persistente ou disponível para todos os shells, coloque-o em .profile ou similar. O conceito como um todo é irritantemente complexo para o novato, tente ler help.ubuntu.com/community/EnvironmentVariables . Para Windows, você desejará mudar para o Linux. OK, estou brincando. Tente computerhope.com/issues/ch000549.htm ou pesquise no Google.open -a TextEdit ~/.bash_profile
no Terminal e adicioneexport NODE_PATH=/usr/local/lib/node_modules
-o ao final do arquivo. Reinicie a janela do terminal. Agora, a execuçãoecho $NODE_PATH
deve ser impressa/usr/local/lib/node_modules
.adicione isso ao início de prog (mac):
module.paths.push('/usr/local/lib/node_modules');
fonte
os.environ.nodepath
(algo nesse sentido).Por padrão, o nó não procura dentro do / usr / local / lib / node_module para carregar módulos globais. Consulte o carregamento do módulo explicado em http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
Portanto, você deve 1) adicionar o / usr / local / lib / node_module ao NODE_PATH e exportá-lo ou 2) copiar os módulos do nó instalado em / usr / local / lib / node. (Conforme explicado no link para carregar o nó do módulo, procurará neste caminho e funcionará)
fonte
Para alguns (como eu), que nada mais funcionou, tente o seguinte:
Espero que ajude alguém :)
fonte
A seguinte correção genérica seria para qualquer módulo. Por exemplo com
request-promise
.Substituir
Com
trabalhou ( fonte ) e também para
globals
einherits
Além disso, tente definir a variável de ambiente
fonte
Eu recebi o erro do módulo "otimista" e acabei de instalar o "npm install" para resolvê-lo. passou esse erro.
https://github.com/mbloch/mapshaper/issues/12
fonte
$ vim /etc/profile.d/nodejs.sh
fonte
Para Windows, do Nodejs não é possível encontrar o módulo instalado no Windows? o que funcionou para mim está executando o link npm como em
fonte
npm install wisp --save
(sem a opção -g)Para usuários do Mac, é melhor usar a instalação manual:
Referência: https://docs.npmjs.com/getting-started/fixing-npm-permissions
fonte
Teve o mesmo problema em um dos servidores de teste em execução
Ubuntu
sobroot
. Em seguida, criou um novo usuário usandouseradd -m myuser
e tudo instalado (nvm
,node
, pacotes) comomyuser
. Agora está funcionando bem.fonte
No Windows, se você fez uma instalação limpa e conseguiu isso, precisa despejar o cache npm em \ AppData \ Roaming
fonte
No meu caso, ambos
node
enpm
estavam no mesmo caminho (/usr/bin
). ComoNODE_PATH
estava vazio,npm
os módulos globais foram colocados/usr/lib/node_modules
onde osrequire(...)
encontravam com êxito. A única exceção foi onpm
módulo, que veio com o pacote nodejs. Desde que eu estou usando o sistema de 64 bits, foi colocado em/usr/lib64/node_modules
. Não é aí que as pesquisas (...) exigem no caso de vazioNODE_PATH
e de nó iniciado/usr/bin
. Então, eu tinha duas opções:/usr/lib64/node_modules/npm
para/usr/lib/node_modules/npm
/usr/lib/node_modules/*
para/usr/lib64/node_modules/
e definirNODE_PATH=/usr/lib64/node_modules
Ambos funcionaram. Estou usando o OpenSUSE 42.1 e o pacote nodejs do repositório de atualizações. A versão é 4.4.5.
fonte
Eu fiz isso de maneira simples ...
npm install --global --verbose protractor
Atualizar o gerenciador de driver da web.
funciona bem para mim.
Espero que isso ajude você....
fonte
Eu recebi esse erro
Error: Cannot find module 'number-is-nan'
enquanto o módulo realmente existe. Isso ocorreu devido a uma instalação incorreta / incompleta do Node.js.Para Windows, como outras respostas sugerem, você precisa de uma instalação limpa do Nó :
npm
enpm_cache
emC:\Users\user\AppData\Roaming
npm init
ou (npm init --yes
para configuração padrão )NODE_PATH
. Este caminho é onde seus pacotes estão instalados. Provavelmente é algo comoNODE_PATH = C:\Users\user\node_modules or C:\Users\user\AppData\Roaming\npm\node_modules
npm
deve funcionar bemNota :
Experimente os últimos pontos antes de reinstalar o Node.js, pois você pode economizar algum tempo e evitar reinstalar todos os seus pacotes.
fonte
Acabei de conhecer esse problema do
axios
módulo. Então eu tentei o seguinte: executerm -rf node_modules
eyarn
. E isso funciona.fonte
Eu tive o mesmo erro do OP, mas vasculhando os logs que pude ver
sh: node: command not found
.Acontece que o programa / usr / bin / node (link simbólico) não está mais instalado
apt install nodejs
. Uma vez que o/usr/bin/node' to
nodejs vinculado,
vinculado ao npm npm install -g @ angular / cli` foi bem-sucedido.A maneira correta de instalar isso no debian é
apt install nodejs-legacy
.fonte
Eu tive que adicionar C: \ Users \ {Nome de usuário} \ AppData \ Roaming \ npm às minhas variáveis env e, em seguida, pude instalar coisas.
fonte