我正在試驗Visual Studio Code,Node.js和Grunt,並且遇到問題。實質上,我似乎無法說服VS碼從npm
所在的當地node_modules\.bin
位置運行grunt
。如果我在全球安裝grunt
和grunt-cli
,但是,我個人並不明白爲什麼我必須這樣做。VS Code:使用來自node_modules .bin的Grunt
我有一個package.json
文件看起來像這樣:
{
"version": "1.0.0",
"name": "VSCODETEST",
"private": true,
"devDependencies": {
"grunt": "~0.4.5",
"grunt-cli": "~1.1.0",
"typescript": "~1.8.9",
"grunt-typescript": "~0.8.0"
},
"dependencies": {
"jquery": "~2.2.2",
"bootstrap": "4.0.0-alpha.2"
}
}
運行npm install
下載的依賴性層次結構。
我在gruntfile.js
定義,在我的項目的根各項任務,這個任務的文件中.vscode\tasks.json
:
{
"version": "0.1.0",
"command": "grunt",
"isShellCommand": true,
"tasks": []
}
我知道這是工作,因爲,在全球安裝了工具軟件之後...
npm install -g grunt grunt-cli
... VS代碼自動獲取gruntfile中的任務並在UI中向我顯示它們
但是,如果我不安裝這些全球(或卸載它們,在全球範圍),它給了我這個錯誤:
'grunt' is not recognized as an internal or external command,
operable program or batch file.
顯然,它不能在其路徑找到grunt
所以我嘗試補救通過修改任務文件...
{
"version": "0.1.0",
"command": "${workspaceRoot}\\node_modules\\.bin\\grunt",
"isShellCommand": true,
"tasks": []
}
這解決了錯誤,但我不再得到任何任務中列示 - 我只得到「沒有任務找到」
我怎麼能eith呃包括node_modules\.bin
在VS代碼用來找到它的工具或繞過這個其他方式?