2015-06-29 10 views
5

Ich versuche zu verstehen, was ich in diesem Fall falsch mache. Ich habe ein Node.js Projekt mit den folgenden in meinem package.jsonMokka läuft mit NPM-Test, aber nicht regulär Mocha CLI-Befehl

"scripts": { 
    "test": "mocha --recursive ./src/setup/*.js ./test/**/*.js" 
    }, 
    "dependencies": { 
    "mocha": "^2.2.5" 
    } 

Als ich ‚NPM-Test‘ die Mokka-Tests laufen korrekt ausgeführt werden:

$ npm test (successful run) 

aber wenn ich versuche, nur laufen der Mokka Befehl, den ich dort

in meinem package.json haben
$ mocha --recursive ./src/setup/*.js ./test/**/*.js" 

Diese Fehler mit:

-sh: mocha: command not found 

Ich habe Mocha nicht global installiert, ich habe es nur über npm zu diesem spezifischen Projekt installiert.

Wenn ich Mocha global installieren, dann funktioniert es. Warum funktioniert es nicht, wenn ich einfach mocha in den node_modules des aktuellen Verzeichnisses installiert habe, aber mit 'npm test'?

Antwort

7

npm Skripte automatisch Mokka zur PATH hinzufügen:

Wenn Sie auf Module ab, die ausführbare Skripte definieren, wie Testsuiten, dann werden diese ausführbaren Dateien zu dem Pfad hinzugefügt werden, um die Skripte für die Ausführung.

https://docs.npmjs.com/misc/scripts#path

+4

FWIW, werden diese Skripte in der Regel in 'gelegen./Node_modules/.bin', die Sie auf den' $ PATH' Variable hinzufügen könnten. – robertklep