2016-02-17 10 views
5

ich eine package.json-Datei, die wie folgt aussieht:Force-Knoten git bash auf Windows verwenden

{ 
    "name": "APP", 
    "version": "3.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node app.js", 
    "test": "./test/dbLoad && env db=test test=1 jasmine" 
    } 
} 

Wenn ich npm Test ausführen, ich einen Fehler:

'.' is not recognized as an internal or external command 

Ich bin Das liegt daran, dass der Knoten Windows cmd.exe verwendet. Der Befehl funktioniert gut, wenn ich ihn mit bash vorstelle. Kann ich eine Konfigurationseinstellung im Knoten so ändern, dass sie automatisch bash verwendet?

Antwort

5

Ja, Sie können!

Bevor npm run laufen sollten Sie tun:

set comspec=your_bash.exe_folder 

Das NPM-Paket, überprüfen Sie die comspec Umwelt, und es auf win32 laufen. standardmäßig ComSpec=C:\windows\system32\cmd.exe

Für weitere Informationen können Sie den Quellcode von NPM siehe: lifecycle.js (Line 219)

if (process.platform === 'win32') { 
    sh = process.env.comspec || 'cmd' 
    shFlag = '/d /s /c' 
    conf.windowsVerbatimArguments = true 
    } 

Sie die Umwelt comspec festlegen, die standardmäßig auf Ihre bash mithilfe der Registrierung. Wenn Sie Hilfe benötigen, bitte Kommentar.

+0

Ändert dies die Shell für mein gesamtes System oder nur für wenn ich Knoten ausführen? –

+2

versuchte Eingabe-Set comspec = 'C: \ Programme \ Git \ bin \ bash.exe' und es blieb nicht. Es wurde auch versucht, die ComSpec-Variable über die Systemsteuerung zu setzen, und die Ausführung von 'npm test' schlägt immer noch mit dem gleichen Fehler fehl. –

+0

Ich habe versucht, an meiner Maschine, und es funktioniert. Hast du 'set compspec = ...' ohne die Anführungszeichen eingegeben? Hast du gesehen, dass der comspec aktualisiert wurde? (mit 'set com') – Aminadav

Verwandte Themen