J'ai écrit un module que j'ai publié il y a un instant sur npm (https://npmjs.org/package/wisp)
Il s'installe donc très bien à partir de la ligne de commande:
$ npm i -g wisp
Cependant, lorsque je l'exécute à partir de la ligne de commande, je reçois toujours une erreur indiquant qu'optimist n'est pas installé:
$ 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)
Cependant, j'ai spécifié dans package.json comme dépendance:
{
"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"
}
}
Quelqu'un sait-il quoi faire pour que cela fonctionne? Je sais que cela a à voir avec la partie bin ajoutant l'exécutable à bin et les node_modules dans ce répertoire étant vides. Je ne sais pas comment résoudre ce problème.
./node_modules/wisp/wisp
ce qui fonctionne bien.Réponses:
Pour toute autre personne rencontrant cela, j'ai eu ce problème en raison de mon
npm
installation dans un emplacement qui n'est pas sur moiNODE_PATH
.Mon NODE_PATH était vide et son fonctionnement
npm install --global --verbose promised-io
montrait qu'il s'installait dans/opt/lib/node_modules/promised-io
:Mon script échoue
require('promised-io/promise')
:J'ai probablement installé le noeud et le npm à partir de la source en utilisant
configure --prefix=/opt
. Je ne sais pas pourquoi cela les a rendus incapables de trouver les modules installés. Le correctif pour l'instant consiste à pointer NODE_PATH vers le bon répertoire:Mon
require('promised-io/promise')
réussit maintenant.la source
export NODE_PATH=...
pour le définir dans le shell local de sorte qu'il soit exporté vers des commandes exécutées dans ce shell. Pour rendre la modification persistante ou disponible pour tous les shells, mettez-la dans .profile ou similaire. Le concept dans son ensemble est ennuyeusement complexe pour le débutant, essayez de lire help.ubuntu.com/community/EnvironmentVariables . Pour Windows, vous voudrez passer à Linux. OK, je plaisante. Essayez computerhope.com/issues/ch000549.htm ou google it.open -a TextEdit ~/.bash_profile
dans le terminal, puis ajoutezexport NODE_PATH=/usr/local/lib/node_modules
à la fin du fichier. Redémarrez la fenêtre du terminal. La courseecho $NODE_PATH
devrait maintenant s'imprimer/usr/local/lib/node_modules
.ajoutez ceci au début du prog (mac):
module.paths.push('/usr/local/lib/node_modules');
la source
os.environ.nodepath
(quelque chose dans ce sens).Par défaut, le nœud ne regarde pas à l'intérieur du / usr / local / lib / node_module pour charger les modules globaux. Reportez-vous au chargement du module expliqué dans http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
Donc, soit vous devez 1) ajouter le / usr / local / lib / node_module à NODE_PATH et l'exporter ou 2) copier les modules de nœud installés dans / usr / local / lib / node. (Comme expliqué dans le lien pour le chargement du module, le nœud cherchera dans ce chemin et fonctionnera)
la source
Pour certains (comme moi) que rien d'autre n'a fonctionné, essayez ceci:
J'espère que cela aide quelqu'un :)
la source
Le correctif générique suivant s'appliquerait à n'importe quel module. Par exemple avec
request-promise
.Remplacer
Avec
travaillé ( source ) et aussi pour
globals
etinherits
Essayez également de définir la variable d'environnement
la source
J'ai eu l'erreur de module "optimist" et je viens de faire "npm install" pour le résoudre. a dépassé cette erreur.
https://github.com/mbloch/mapshaper/issues/12
la source
$ vim /etc/profile.d/nodejs.sh
la source
Pour Windows, Nodejs ne trouve pas le module installé sur Windows? ce qui a fonctionné pour moi est d'exécuter le lien npm comme dans
la source
npm install wisp --save
(sans l'option -g)Pour les utilisateurs de Mac, il est préférable d'utiliser l'installation manuelle:
Référence: https://docs.npmjs.com/getting-started/fixing-npm-permissions
la source
Eu le même problème sur l'un des serveurs de test
Ubuntu
sousroot
. Ensuite , créé un nouvel utilisateur à l' aideuseradd -m myuser
et tout installé (nvm
,node
, forfaits) commemyuser
. Maintenant ça marche bien.la source
Sur Windows, si vous venez de faire une installation propre et que vous obtenez cela, vous devez supprimer votre cache npm dans \ AppData \ Roaming
la source
Dans mon cas, les deux
node
etnpm
étaient sur le même chemin (/usr/bin
). LeNODE_PATH
était vide, donc lesnpm
modules globaux étaient placés/usr/lib/node_modules
là oùrequire(...)
les trouver avec succès. La seule exception était lenpm
module, fourni avec le package nodejs. Puisque j'utilise un système 64 bits, il a été placé dans/usr/lib64/node_modules
. Ce n'est pas là que nécessitent (...) les recherches en cas de videNODE_PATH
et de démarrage du nœud/usr/bin
. J'avais donc deux options:/usr/lib64/node_modules/npm
vers/usr/lib/node_modules/npm
/usr/lib/node_modules/*
de/usr/lib64/node_modules/
setNODE_PATH=/usr/lib64/node_modules
Les deux fonctionnaient. J'utilise OpenSUSE 42.1 et le package nodejs du référentiel de mises à jour. La version est 4.4.5.
la source
Je l'ai fait de manière simple ...
npm install --global --verbose protractor
le gestionnaire de pilotes Web de mise à jour du rapporteur .
fonctionne bien pour moi.
J'espère que cela vous aidera ....
la source
J'ai eu cette erreur
Error: Cannot find module 'number-is-nan'
alors que le module existe réellement. Cela était dû à une installation Node.js incorrecte / incomplète.Pour Windows, comme d'autres réponses le suggèrent, vous avez besoin d'une installation Node propre :
npm
etnpm_cache
enC:\Users\user\AppData\Roaming
npm init
ou (npm init --yes
pour la configuration par défaut )NODE_PATH
. Ce chemin est l'endroit où vos packages sont installés. C'est probablement quelque chose commeNODE_PATH = C:\Users\user\node_modules or C:\Users\user\AppData\Roaming\npm\node_modules
npm
devrait fonctionner correctementRemarque :
Essayez les derniers points avant de réinstaller Node.js, cela pourrait vous faire gagner du temps et éviter de réinstaller tous vos packages.
la source
Je viens de rencontrer ce problème de
axios
module. Ensuite, j'ai essayé ceci: exécuterrm -rf node_modules
etyarn
. Et il fonctionne.la source
J'ai eu la même erreur que l'OP, mais en fouillant dans les journaux, je pouvais voir
sh: node: command not found
.Il s'avère que le programme / usr / bin / node (lien symbolique) n'est plus installé avec
apt install nodejs
. Une fois lié/usr/bin/node' to
nodejs,
NPM installer -g @ angulaire / cli` réussi.La bonne façon d'installer ceci sur Debian est
apt install nodejs-legacy
.la source
J'ai dû ajouter C: \ Users \ {Username} \ AppData \ Roaming \ npm à mes variables env et ensuite j'ai pu installer des trucs.
la source