web-dev-qa-db-ja.com

Task Runner Explorerはタスクをロードできません

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について不満を言う理由がわかりません。

99
Josh M.

最近、VS2013からの移行で同じ問題が発生しました。

Joshがコメントで指摘したように、 here Visual Studio 2015にはNodeの古いバージョンが付属しています。 Visual Studioに組み込まれているNodeのバージョンにとらわれたくない場合は、インストール済みのバージョンを使用するように指示できます。

  • 移動:ツール>オプション>プロジェクトとソリューション>外部Webツール
  • $(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

310
M1Les

Gulp-sassは別の場所でnode-sassを検索するようです。これは一時的な解決策です。

  1. c:\ Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor \内にwin32-ia32-11という名前の新しいディレクトリを作成します

  2. Goto https://github.com/sass/node-sass-binaries そしてwin32-ia32-11_binding.nodeをダウンロードします。

  3. Win32-ia32-11_binding.nodeファイルをc:\ Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11 \にコピーし、名前をbinding.nodeに変更します

Visual Studio Gulp - Task Runner

7
tansu

上記のソリューションをすべて試してみましたが、機能しません。別のソリューション ここ を見つけました。

Node.jsバージョンでVisual Studioを強制的に実行する必要があります。

  1. Visual Studio 2015でTools> Optionsに移動します
  2. Projects and Solutions> External Web Toolsに移動します
  3. 次のパスを追加します:C:\Program Files\nodejs
2
Alex Nguyen

node-sassはインストールスクリプトを実行して、必要なバイナリをダウンロードします。環境変数、.npmrc変数、またはプロセス引数が設定されていない場合、バイナリは現在のプロセスプラットフォーム、アーキテクチャ、およびNode ABIバージョンを使用して決定されます。したがって、1つのアプリケーションでノードインストールを実行してから、異なるプラットフォーム/アーキテクチャ/ ABIを使用してアプリケーションでnode-sassを実行しようとすると、バイナリはダウンロードされません。解決策は、バイナリを手動でダウンロードするか、環境変数(SASS_BINARY_NAME)または.npmrc変数(sass_binary_name)を使用してバイナリバージョンを修正することです。

Node-sass\lib\extensions.jsのgetBinaryPath関数でこのロジックを確認できます。

参照: Node Sassは現在の環境のバインディングを見つけることができませんでした

0
Tevin

私の問題を解決した唯一の解決策は、NPM Task Runnerを再インストールすることでした。マーケットプレイスの次のリンクからダウンロードできます。
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner

0
Mohsen Sarkar