VS2015とGulpを使用しています。 Task Runner Explorerを開いて更新をクリックすると、ログに表示されます。
Failed to run "C:\Projects\Test\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: `libsass` bindings not found in C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node. Try reinstalling `node-sass`?
at Object.sass.getBinaryPath (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:148:11)
at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
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> (C:\Projects\Test\node_modules\gulp-sass\index.js:163:21)
at Module._compile (module.js:456:26)
それで、PowerShellの同じディレクトリでcmd.exe /c gulp --tasks-simple
を実行しようとすると、正常に動作します-タスクのリストを返します。
また、SASS関連のタスクを正常に実行できるので、VSSを実行しているのにコマンドラインから直接実行していないときにSASSについて不満を言う理由がわかりません。
最近、VS2013からの移行で同じ問題が発生しました。
Joshがコメントで指摘したように、 here Visual Studio 2015にはNodeの古いバージョンが付属しています。 Visual Studioに組み込まれているNodeのバージョンにとらわれたくない場合は、インストール済みのバージョンを使用するように指示できます。
$(PATH)
が$(DevEnvDir)\Extensions\Microsoft\Web Tools\External
より上になるように並べ替えるこれは、Grunt、Bower、Gulpなどの他のツールにも適用されます。
このソリューションはMads Kristensenが見つけました こちら 。
Visual Studio 2017の場合、設定は次の場所にあります。
Tools > Options > Projects and Solutions > Web Package Management > External Web Tools
Gulp-sassは別の場所でnode-sassを検索するようです。これは一時的な解決策です。
c:\ Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor \内にwin32-ia32-11という名前の新しいディレクトリを作成します
Goto https://github.com/sass/node-sass-binaries そしてwin32-ia32-11_binding.nodeをダウンロードします。
Win32-ia32-11_binding.nodeファイルをc:\ Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11 \にコピーし、名前をbinding.nodeに変更します
上記のソリューションをすべて試してみましたが、機能しません。別のソリューション ここ を見つけました。
Node.jsバージョンでVisual Studioを強制的に実行する必要があります。
Tools
> Options
に移動しますProjects and Solutions
> External Web Tools
に移動しますC:\Program Files\nodejs
node-sassはインストールスクリプトを実行して、必要なバイナリをダウンロードします。環境変数、.npmrc変数、またはプロセス引数が設定されていない場合、バイナリは現在のプロセスプラットフォーム、アーキテクチャ、およびNode ABIバージョンを使用して決定されます。したがって、1つのアプリケーションでノードインストールを実行してから、異なるプラットフォーム/アーキテクチャ/ ABIを使用してアプリケーションでnode-sassを実行しようとすると、バイナリはダウンロードされません。解決策は、バイナリを手動でダウンロードするか、環境変数(SASS_BINARY_NAME)または.npmrc変数(sass_binary_name)を使用してバイナリバージョンを修正することです。
Node-sass\lib\extensions.jsのgetBinaryPath関数でこのロジックを確認できます。
私の問題を解決した唯一の解決策は、NPM Task Runnerを再インストールすることでした。マーケットプレイスの次のリンクからダウンロードできます。
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner