2016-03-25 7 views
0

私はVisual Studio Code、Node.js、Gruntを試して問題にぶつかります。基本的には、私はVSコードをローカルnode_modules\.binの場所からgruntを実行するように納得させるように見えることはできません。npmがそれを置きます。私がgruntgrunt-cliをグローバルにインストールするとすべて動作しますが、個人的にはどうして私はそれをしなければならないのでしょうか。VSコード:node_modules .binからグランを使用する

{ 
    "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は、依存関係の階層をダウンロード:

私はこのようになります package.jsonファイルを持っています。

私は私のプロジェクトのルートに、私の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ことができ、「何のタスクが見つかりません」を取得しますVSコードがそのツールを見つけるために使用するPATHにはnode_modules\.binが含まれています。

答えて

0

私は解決策を見つけた:.vscode\tasks.jsonは次のようになります。

{ 
    "version": "0.1.0", 
    "command": "${cwd}/node_modules/.bin/grunt", 
    "isShellCommand": true, 
    "showOutput": "always", 
    "tasks": [ 
     { 
      "taskName": "default", 
      "args": [], 
      "isBuildCommand": true, 
      "problemMatcher": "$tsc-watch" 
     } 
    ] 
} 

重要な変更は、実行するcommandの仕様です。

さらに、gruntfile.jsには、VSコードの設定ファイルのタスクに与えられたtaskNameに一致するタスクを実際に登録する必要があります。たとえば、上の例のdefaultタスクは、次のように登録されています。

// Default Task is to run grunt-ts build task named `ts' 
grunt.registerTask("default", ["ts"]); 
関連する問題