Edited at

Visual StudioのTask Runnerでgulp-sass使用時のエラー

More than 1 year has passed since last update.


Task Runnerで読み込みエラー


環境

Windows10 64bit

Visual Studio2015

Node v4.5.0

npm 3.10.9


状況

NodeはNodistを使いインストールし

npmも同じくNodistで管理



npm i -g gulp-cli

npm i -D gulp

npm i -D gulp-sass



をしている状態で


gulpfile.js

const gulp = require('gulp');

const sass = require('gulp-sass');

が、gulp-sassのrequireで読み込みエラー

コマンドプロンプトからはタスクを作り実行が可能


エラー内容

"D:\data\Site\Gulpfile.js" を実行できませんでした...

cmd.exe /c gulp --tasks-simple
Error: Missing binding D:\data\Site\node_modules\node-sass\vendor\win32-ia32-11\binding.node
Node Sass could not find a binding for your current environment: Windows 32-bit with Node 0.10.x
Found bindings for the following environments:
- Windows 64-bit with Node.js 4.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
at module.exports (D:\data\Site\node_modules\node-sass\lib\binding.js:15:13)
at Object.<anonymous> (D:\data\Site\node_modules\node-sass\lib\index.js:14:35)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (D:\data\Site\node_modules\gulp-sass\index.js:187:21)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)


解決策

コマンドプロンプトは利用が可能だったので、Visual Studioの参照の問題

ここで解決

https://blogs.msdn.microsoft.com/webdev/2015/03/19/customize-external-web-tools-in-visual-studio-2015/

メニュー > ツール > オプション > プロジェクトおよびソリューション > 外部WEBツール

GulpやBowerなどの参照を解決している

ここはデフォルトで



.node_module\.bin

$(DevEnvDir)\Extensions\Microsoft\Web Tools\External

$(PATH)

$(DevEnvDir)\Extensions\Microsoft\Web Tools\External\git

となっている。

$(DevEnvDir)は、Visual Studioをインストールしたときに

Node,git,Gruntなどが一緒にはいるのでそこのパスです。

それを



.node_module\.bin

$(PATH)

$(DevEnvDir)\Extensions\Microsoft\Web Tools\External

$(DevEnvDir)\Extensions\Microsoft\Web Tools\External\git



としてあげれば、参照の問題が解決しTaskRunnerの読み込みができるようになりました。