Comment “mnp” exécuter “npm test”?
J'ai toujours pensé que npm test
commande lance ce que je voudrais écrire dans package.json
à l'intérieur de scripts: { test: ...}
section. Mais j'ai ce bug bizarre quand ça ne fonctionne pas.
Donc, j'ai ce morceau de config dans package.json
"scripts": {
"start": "node index.js",
"test": "mocha tests/spec.js"
}
Lorsque j'essaie d'exécuter des tests que j'type npm test
dans le terminal et eu cette erreur:
module.js:340
throw err;
^
Error: Cannot find module 'commander'
Mais tout est OK quand je tape juste mocha tests/spec.js
. Des idées pourquoi est-ce?
Mise à JOUR:
J'ai essayé d'installer le commandant et j'ai eu une erreur Ne trouve pas le module 'glob'. Après l'installation de glob
j'ai
D'erreur: Impossible de trouver le module '../'**
Mais en fait la question est pourquoi j'ai ces erreurs et pourquoi tout est OK lors de l'exécution de mocha tests/spec.js
?
- Où est le commandant installé dans votre système de fichiers?
- Il fait appel à la commande spécifiée dans les scripts.propriété de test de package.json, mais il établit également certaines variables d'environnement, comme le CHEMIN d'accès de sorte que vous pouvez vous référer à des commandes qui n'existent que dans votre répertoire node_modules, mais il n'est pas installé à l'échelle mondiale.
- Assurez-vous d'ajouter le commandant de votre colis.json et
npm install
: ) - Je ne sais même pas ce que
commander
est et pourquoi en ai-je besoin - C'est probablement une dépendance d'un autre paquet, vous dépendez.
- veuillez lire ma dernière question
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir deux versions de moka installées: l'une à l'échelle mondiale (
npm install -g mocha
) et un local, qui semble être rompu.Lorsque vous exécutez un script par
npm
, soit commenpm run-script <name>
ou avec un raccourci défini commenpm test
ounpm start
, votre forfait actuel du répertoirebin
répertoire est placé à l'avant de votre chemin. Pour votre paquet qui est probablement./node_modules/.bin/
, qui contient un lien vers votre paquetmocha
script exécutable.Vous pouvez probablement résoudre ce problème en supprimant les locaux de moka et de le réinstaller avec --save-dev:
Qui devrait vous obtenir un travail de copie locale de moka avec toutes ses dépendances (commandant etc.) installé en.
npm help test
dit:This runs a package's "test" script, if one was provided.
mais ne dit pas où le ""test" script" est sur le système de fichiers! Bon à savoir il est dans mon "package actuel du répertoirebin
répertoire" comme vous le dites ici!