2016-02-09 5 views
13

Ich habe ein NPM-Projekt, das bufferutils und utf-8-validate verwendet, beide erfordern Node-Gyp, sie zu installieren. Wenn ich npm install tun, erhalte ich Fehler folgende:Npm-Installation, die erfordert Node-Gyp schlägt unter Windows

> [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      

Bisher scheiterte es wegen der Python 2.7 nicht installiert, jetzt ist es das ist. Es verursacht mir Kopfschmerzen. Was soll ich dagegen tun?

Antwort

15

fand ich diese brilliant solution auf GitHub:

  1. Ihr OS
  2. Überprüfen Sie, dass Python auf Ihrem Weg durch writting python --version in der Konsole von Windows sein muss. Wenn nicht, dann
  3. Laden Sie Python 2.7 herunter (ich empfehle chocolatey (choco install python2 -y)) und fügen Sie python.exe zu Ihrer PATH-Variable hinzu.
  4. Sind Sie nicht auf Windows 7? Überspringen 5 und 6.
  5. Check that you have .NET 4.5.1+ installed. Wenn nicht, dann
  6. Download and install .NET 4.5.1 (.NET 4.5.2 auch gut funktionieren wird)
  7. Herunterladen Microsoft Visual C++ Build Tools 2015 Technical Preview
  8. Verwenden Sie benutzerdefinierte Installation. Installieren Sie das Windows 8.1 SDK, falls Sie dies nicht bereits getan haben. Offensichtlich ist es egal, auf welchem ​​Betriebssystem Sie sind. Sie benötigen nur das Windows 8.1 SDK.
  9. die npm Konfigurationsvariable msvs_version bis 2015 Set: npm config -g set msvs_version 2015
  10. npm i Sie in dem, was jemals Projekt mit Knoten-gyp als Abhängigkeit ohne merkwürdige Fehlermeldungen zu sehen

sind meine Albträume weg!

+7

Dies ist der Grund, warum Windows-Benutzer nicht glücklich mit Node-Gyp-Wiederaufbau sind. Brilliante Lösung selbst ist zu groß. Unzufrieden mit dem nodegyp Crap – Prasad

+0

Natürlich, aber es ist Ihr Problem mit C++ Code in einer npm App. C-Compiling war immer ein Kopfschmerz ... Besser wäre überhaupt nicht von C++ Code abhängig. –

+1

nodegyp auf windows = Unglücklicher Mist 80% – Prasad

33

Die akzeptierte Antwort steht für eine manuelle Installation, aber es gibt einen viel einfacheren Weg: die automatische Installation.

Öffnen Sie Powershell als Admin und führen Sie npm install -g windows-build-tools.

Die Installation braucht Zeit, aber es funktionierte wie ein Charme für mich!