2016-02-17 60 views
5

我有一個的package.json文件看起來git的慶典,如:強制節點在Windows上使用

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

當我運行NPM測試中,我得到一個錯誤:

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

我猜測這是因爲節點正在使用windows cmd.exe。如果我用bash作爲前言,該命令正常工作。我可以在節點中更改某種配置設置,以便它自動使用bash嗎?

回答

5

是的,你可以!

運行npm run之前,你應該做的:

set comspec=your_bash.exe_folder 

故宮包,檢查COMSPEC環境,並在Win32上運行它。通過使用註冊表默認lifecycle.js (Line 219)

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

您可以設置環境COMSPEC,您的bash: 默認情況下ComSpec=C:\windows\system32\cmd.exe

欲瞭解更多信息,你可以看到故宮的源代碼。如果您需要任何幫助,請發表評論。

+0

這會改變我的整個系統的外殼,或只是當我運行節點? –

+2

嘗試輸入set comspec ='C:\ Program Files \ Git \ bin \ bash.exe',它沒有粘住。還嘗試通過控制面板設置ComSpec變量,並且運行'npm test'仍然失敗並出現相同的錯誤。 –

+0

我在我的機器上試過了,它正在工作。你是否輸入'set compspec = ...'沒有引號?你有沒有看到comspec更新? (使用'set com') – Aminadav