71

x64 OSでこれまでに行ったことは次のとおりです。

  • Python (v2.7 -- 具体的には 2.7.6) をインストールし、システム パス (C:\Python27) に追加しました。
  • インストール済みの MS VS C++ 2010 Express バージョン (既に VS 2012 を持っていましたが、C++ コンポーネントはありません)
  • Windows SDK 7.1 のコンパイラ更新プログラムをインストールしました
  • node-gyp configure が正常に実行されました (bind.gyp がある nodejs\node_modules の下のアドオン ディレクトリから)

  • node-gyp build を (管理者として) 実行しました** これがクラッシュしたものです。

このエラー:

C:\Program Files\nodejs\node_modules\msnodesql>node-gyp build
gyp info it worked if it ends with ok
gyp info using node-gyp@0.12.2
gyp info using node@0.10.25 | win32 | x64
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=x64' ]
Building the projects in this solution one at a time. To enable parallel build, please add the   "/m" switch.

リンク: 致命的なエラー LNK1181: 入力ファイル 'kernel32.lib' を開けません [C:\Program Files\nodejs\node_modules\msnodesql\build\sqlserver.vcxproj]

gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\RNelson\AppData\Roaming\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Users\\RNelson\\AppData\\Roaming\\npm\\node_modules\\node-      gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\Program Files\nodejs\node_modules\msnodesql
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok

何が起こっているかについてのアイデアはありますか?前もって感謝します!Node.js用のnode-sqlserver MSドライバーを使用しようとしています

4

11 に答える 11

49

同様の問題がありました。このスイッチが役に立ったことがわかりました

--msvs_version=2012

例えば

npm install --msvs_version=2012 <package>
于 2014-03-20T14:58:24.727 に答える
37

npm config set msvs_version 2013 --global私はVSノードツールを使用しており、npmインストールを行うたびにmsvs_versionを指定する必要がないため、うまくいきました。

npm の構成 (c:\Users\username\ .npmrc) に古いエントリ msvs_version=2012 があるという問題がありました。

于 2014-12-19T12:05:02.740 に答える
18

これを機能させるためにしばらく時間を費やした後(私にとっては、受け入れられた答えは機能しませんでした。私にとっては、それは半分の解決策です)、次のことを行いました:

  1. 悲しいことに、Visual Studio が必要です (デスクトップ用に Express Edition 2013 をインストールしました)。

  2. インストール済みの python 2.7.3 (環境変数を設定する必要はありません)

  3. 管理者として cmd を実行し、プロジェクト ルートに移動します (package.json ファイルはどこにありますか)。

  4. ファーストラン:npm config set python C:\Python27\python.exe

  5. それで:npm install -msvs_version=2013

トリックは、npm config set python ...path_to_python_exe...Pythonが必要な依存関係にnpmによって提供されるコマンドにあります。Python を env 変数として設定するだけでは不十分な理由がわかりません。

于 2014-12-09T18:11:52.397 に答える
4

2015年にKeystoneをインストールしようとしたときに同じエラーが発生し、あなたが私に言ったことをすべて実行しましたが、それ自体では機能しませんでした. 最後に、コマンドを実行するだけでした

"C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\SetEnv.CMD" /Release /x64

コマンドを実行する前に環境をセットアップします。(ウィンドウのテキストが緑色に変わっても驚かないでください。動作しています)。ええ、インターネット上のどこでも提案されているのと同じ方法でインストールを行い、環境変数を設定しますが、他のコマンドを実行する前に上記のコマンドを必ず実行してください。おそらくあなたには役に立たないでしょうが、うまくいけば他の誰かに役立つでしょう。それでもうまくいかない場合は、MSVS バージョン 2010 でうまくいったので、そのバージョンをインストールし、npm コマンドを実行するときにフラグ -msvs_version=2010 を使用します。

于 2015-07-02T15:22:51.537 に答える
0

私も同様の問題を抱えていましたが、これが私にとってうまくいったものです。

  • Python と Visual Studio を削除
  • 「C++ によるデスクトップ開発」で Python 27 と Microsoft Visual Studio をインストール
  • Python パスの設定npm config set python /path/to/executable/python
  • npm install node-gyp -g
  • node-gyp configure --msvs_version=2013
于 2020-12-31T09:17:28.140 に答える