webentwicklung-frage-antwort-db.com.de

die Installation von npm, für die node-gyp erforderlich ist, schlägt unter Windows fehl

Ich habe ein NPM-Projekt, das bufferutils und utf-8-validate verwendet. Beide erfordern node-gyp, um sie zu installieren. Wenn ich npm install mache, erhalte ich folgende Fehlermeldung:

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

Früher ist es fehlgeschlagen, weil Python 2.7 nicht installiert ist. Es verursacht mir Kopfschmerzen. Was soll ich dagegen tun?

22
Marek Lisý

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

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

Die Installation braucht Zeit, aber es hat für mich wie ein Zauber funktioniert!

57
Manuel Beaudru

Ich habe diese geniale Lösung auf GitHub gefunden:

  1. Ihr Betriebssystem MUSS Windows sein
  2. Überprüfen Sie, ob sich Python in Ihrem Pfad befindet, indem Sie python --version in die Konsole schreiben. 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-Variablen hinzu.
  4. Bist du nicht unter Windows 7? Überspringen Sie 5 und 6.
  5. Überprüfen Sie, ob Sie .NET 4.5.1 oder höher installiert haben . Wenn nicht, dann
  6. Laden Sie .NET 4.5.1 herunter und installieren Sie es (.NET 4.5.2 wird auch gut funktionieren)
  7. Download Microsoft Visual C++ Build Tools 2015 - Technische Vorschau
  8. Verwenden Sie eine benutzerdefinierte Installation. Installieren Sie das Windows 8.1-SDK, falls Sie dies noch nicht getan haben. Anscheinend spielt es keine Rolle, auf welchem ​​Betriebssystem Sie sich befinden. Sie benötigen lediglich das Windows 8.1 SDK.
  9. Setzen Sie die npm-Konfigurationsvariable msvs_version auf 2015: npm config -g set msvs_version 2015
  10. Führen Sie npm i in was auch immer mit node-gyp als Abhängigkeit aus, ohne seltsame Fehlermeldungen zu sehen

Meine Alpträume sind vorbei!

17
Marek Lisý

Nachdem er mehrere Tage lang versucht hatte, ZeroMQ auf Winturds 7 und 10 zu installieren (einschließlich der lächerlichen und völlig unbrauchbaren Installation von .NET und Visual Studio), war es war tatsächlich einfacher, eine Ubuntu USB-Bootdiskette und einen Installationsknoten zu erstellen und zu installieren ZeroMQ. Jetzt kann ich tatsächlich produktiv arbeiten.

0
J Slick

Ich hatte dieses Problem beim Aktualisieren von einer älteren Version von Knoten zu Knoten v12. Es gab ein spezielles Problem mit der bcrypt-Bibliothek. Ich habe gerade v12 deinstalliert und v10 installiert und alles hat funktioniert.

0
BogutBeastMode

Ich konnte meine Lösung nirgendwo anders finden und dachte, ich würde sie teilen.

Ausführen von Node 10.16.3 unter Windows 10

Installieren Sie Windows-Build-Tools -

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

Setzen Sie den Pfad python explizit in C:\Users [Ihr Benutzername] .npmrc - In meinem Fall ist das so:

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