web-dev-qa-db-ja.com

node-gypを必要とするnpmインストールがWindowsで失敗する

bufferutilsutf-8-validateを使用するNPMプロジェクトがあり、どちらもそれらのインストールにnode-gypが必要です。 npm installを実行すると、次のエラーが表示されます。

> [email protected] install C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil                       
> node-gyp rebuild                                                                                             


C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil {git}{hg}                                        
{lamb} if not defined npm_config_node_gyp (node "C:\Users\Marek\AppData\Roaming\npm\node_modules\npm\bin\node-g
yp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )                        
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.    
  bufferutil.cc                                                                                                
C:\Users\Marek\.node-gyp\5.1.1\include\node\v8.h(18): fatal error C1083: Cannot open include file: 'stddef.h': 
 No such file or directory [C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil\build\bufferutil.vcx 
proj]                                                                                                          
gyp ERR! build error                                                                                           
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1           
gyp ERR! stack     at ChildProcess.onExit (C:\Users\Marek\AppData\Roaming\npm\node_modules\npm\node_modules\nod
e-gyp\lib\build.js:276:23)                                                                                     
gyp ERR! stack     at emitTwo (events.js:87:13)                                                                
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)                                                      
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)                   
gyp ERR! System Windows_NT 10.0.10586                                                                          
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Marek\\AppData\\Roaming\\npm\\node_modules\\
npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"                                                       
gyp ERR! cwd C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil                                     
gyp ERR! node -v v5.1.1                                                                                        
gyp ERR! node-gyp -v v3.2.1                                                                                    
gyp ERR! not ok                                                                                                
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild`                                 
npm WARN install:[email protected] Exit status 1                       

以前は、Python 2.7がインストールされていないために失敗しました。現在はこれです。頭痛の種です。これについてはどうすればよいですか?

32
Marek Lisý

以下の答えは手動インストールの略ですが、もっと簡単な方法があります:自動インストールです。

Powershellを管理者として開き、npm install -g windows-build-toolsを実行します。

インストールには時間がかかりますが、それは私にとって魅力的でした!

74
Manuel Beaudru

私はこれを見つけました ブリリアントソリューション GitHubで:

  1. OSはWindowsでなければなりません
  2. pythonがパスに含まれていることを確認するには、python --versionコンソールで。そうでない場合
  3. ダウンロードpython 2.7(推奨 chocolateychoco install python2 -y))を追加し、python.exeをPATH変数に追加します。
  4. あなたはWindows 7ではありませんか? 5と6をスキップします。
  5. 。NET 4.5.1+がインストールされていることを確認してください 。そうでない場合
  6. 。NET 4.5.1をダウンロードしてインストール (.NET 4.5.2も問題なく動作します)
  7. ダウンロード Microsoft Visual C++ Build Tools 2015 Technical Preview
  8. カスタムインストールを使用します。 Windows 8.1 SDKをまだインストールしていない場合はインストールします。どうやら、どのOSを使用していても関係ありません。 Windows 8.1 SDKが必要です。
  9. Npm構成変数msvs_versionを2015に設定します:npm config -g set msvs_version 2015
  10. 行う npm i奇妙なエラーメッセージが表示されない、依存関係としてnode-gypを使用するwhat-everプロジェクト

私の悪夢は消えた!

19
Marek Lisý

ZeroMQをWinturds 7および10(.NETおよびVisual Studioのばかばかしく完全に無用なインストールを含む)にインストールしようとして数日間にわたって多くの時間を無駄にした後、実際にはUbuntu USBブートディスクを作成してノードをインストールする方が簡単でしたおよびZeroMQ。今では、実際に生産的な仕事をすることができます。

0
J Slick

古いバージョンのノードからノードv12に更新するときにこの問題が発生していました。 bcryptライブラリに特定の問題がありました。 v12をアンインストールしてv10をインストールしたところ、すべてが機能しました。

0
BogutBeastMode

私のソリューションは他のどこにも見つからなかったので、共有したいと思いました。

Windows 10で実行中のノードv10.16.3

Windows-build-toolsをインストールします-

npm install --global --production windows-build-tools

pythonパスをC:\ Users [your username] .npmrcに明示的に設定します-私の場合、これは次のようになります:

python=c:\users\akeel\.windows-build-tools\python27\python
0
Akeel