1

いくつかの NPM 依存関係がインストールされていることを確認する必要があり、それらのいくつかは node_gyp を使用してコンパイルします。つまり、「npm install --msvs_version=2013」を呼び出す必要があるため、node_gyp は vs.net 2013 コンパイラを使用します。しかし、何らかの理由で、これを psake タスクに追加すると失敗します。3 番目の引数が正しく渡されていないようです。

task npmInstall {
  exec {npm install --msvs_version=2013}
}

「./psake npmInstall」を呼び出すと実行されますが、node_gyp は 3 番目の引数を取得していないため失敗します。エラーはかなり明確に見えます-2013 CPP ファイルを使用していません。V110 と表示されている場合は、V120 と表示する必要があります (通常は --msv_version2013 を呼び出すことで解決されます)。

C:\Projects\MyProject\app\SubProject\node_modules\browser-sync\node_modules\socket.io\node_modules\engine.io\node_modules\ws\build\bufferutil.vcxproj(18,3): エラー MSB4019: インポートされたプロジェクト「C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Default.props」が見つかりませんでした。宣言内のパスが正しいこと、およびファイルがディスク上に存在することを確認してください。

コマンドを直接 powershell で実行すると、問題なく動作します。PowerShell でスクリプトの一部としてコマンドを実行すると、正常に動作します。Powershell で「Import-Module path/to/psake.psm1; exec {npm install --msvs_version=2013}」を直接実行しても問題なく動作します。psake タスクの一部としてのみ失敗します。

ここで何が起こっているのでしょうか?

4

1 に答える 1