Die NPM-Installation schlägt mit node-gyp fehl

Lesezeit: 9 Minuten

Benutzeravatar von Oliver Watkins
Oliver Watkins

Wir haben Probleme beim Laufen „npm installieren“ an unserem Projekt. Eine bestimmte Datei kann nicht gefunden werden:

fatal error C1083: Cannot open include file: 'windows.h'

Es scheint von der zu kommen Knoten-gyp Modul:

c:\Programme\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo ad_hook.c(13):

schwerwiegender Fehler C1083: Include-Datei kann nicht geöffnet werden: „windows.h“: Datei oder Verzeichnis nicht gefunden
[D:\ngs-frontend-next\node_modules\browser-sync\node_module
s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil
d\binding.sln]

Dieser Knoten-Gyp scheint für uns eine nie endende Schmerzquelle zu sein. Zuerst hat es sich beschwert, dass es Python braucht, also haben wir das installiert. Dann hat es sich beschwert, dass es VCBuild benötigt, das wir installiert haben (unter Verwendung von .NET 2.0 SDK), jetzt haben wir diesen Fehler. Es ist fast so, als ob die Fehler immer undurchsichtiger werden und es sich anfühlt, als würden wir einen falschen Weg einschlagen.

Das Seltsame ist, dass andere Leute in unserem Team keine Probleme haben, die npm-Installation auszuführen.

Der vollständige Fehler sieht so aus:

c:\Programme\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo ad_hook.c(13):

schwerwiegender Fehler C1083: Include-Datei kann nicht geöffnet werden: „windows.h“: Datei oder Verzeichnis nicht gefunden
[D:\ngs-frontend-next\node_modules\browser-sync\node_module
s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil
d\binding.sln]

gyp ERR! Baufehler gyp ERR! Stack-Fehler:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe fehlgeschlagen mit Exit-Code: 1 Stack bei ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node _modules\node-gyp\lib\build.js:270:23) gyp ERR! Stack bei emitTwo (events.js:87:13) gyp ERR! Stack bei ChildProcess.emit (events.js:172:7) gyp ERR! Stack bei Process.ChildProcess._handle.onexit (internal/child_proces s.js:200:12) gyp ERR! System Windows_NT 6.1.7601 gyp ERR! Befehl “C:\Program Files\nodejs\node.exe” “C:\Program Files\nodej s\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js” “rebuild” gyp ERR! cwd D:\ngs-frontend-next\node_modules\browser-sync\node_modules\socket. io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil gyp ERR! node -v v4.2.2 gyp ERR! node-gyp -v v3.0.3 gyp ERR! nicht ok npm WARN optional dep fehlgeschlagen, [email protected] wird fortgesetzt

[email protected] postinstall D:\ngs-frontend-next\node_modules\gulp-imagemin\nod e_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle node lib/install.js

aus Paket.json sieht aus wie das :

{
  "name": "Fast-nunjucks",
  "version": "0.0.1",
  "description": "A simple boilerplate using nunjucks as a template engine",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/willianjusten/Fast-nunjucks.git"
  },
  "keywords": [
    "nunjucks",
    "node",
    "gulp",
    "stylus"
  ],
  "author": "Willian Justen de Vasconcellos",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/willianjusten/Fast-nunjucks/issues"
  },
  "homepage": "https://github.com/willianjusten/Fast-nunjucks",
  "devDependencies": {
    "autoprefixer-stylus": "^0.7.1",
    "browser-sync": "^2.8.2",
    "gulp": "^3.9.0",
    "gulp-cache": "^0.3.0",
    "gulp-concat": "^2.6.0",
    "gulp-if": "^1.2.5",
    "gulp-imagemin": "^2.3.0",
    "gulp-minify-html": "^1.0.4",
    "gulp-nunjucks-html": "^1.2.2",
    "gulp-order": "^1.1.1",
    "gulp-plumber": "^1.0.1",
    "gulp-stylus": "^2.0.6",
    "gulp-uglify": "^1.2.0",
    "gulp-util": "^3.0.6",
    "jeet": "^6.1.2",
    "kouto-swiss": "^0.11.13",
    "minimist": "^1.1.3",
    "rupture": "^0.6.1"
  },
  "dependencies": {
    "gulp-install": "^0.6.0"
  }
}

  • “Das Seltsame ist, dass andere Leute in unserem Team keine Probleme haben, die npm-Installation auszuführen.” – Stellen Sie sicher, dass alle auf der gleichen Version des Knotens sind.

    – xdumaine

    24. November 2015 um 14:48 Uhr

  • Haben Sie dieses Problem gelöst? Ich habe so etwas. Können Sie dieses Problem überprüfen: stackoverflow.com/questions/34335043/… Vielleicht haben Sie einige nützliche Ratschläge für mich.

    – Dmytro Medvid

    26. Dezember 2015 um 9:30 Uhr

  • Ich habe mehrere Tage für dieses Build-Problem versucht, auf meinem PC mit Visual Studio 2010 / 2013 / 2015 installiert, ohne Erfolg. Und am Ende wurde es schließlich erfolgreich in einer reinen Windows-VM erstellt. Ich mag es nicht, aber es hat funktioniert.

    – Val

    27. Dezember 2016 um 10:26 Uhr

  • Oh Mann. Ich aktualisiere meine Apps nicht oft, aber jedes Mal, wenn ich das tue, schlägt node-sass bei der npm-Installation fehl. Es wird wirklich alt. Gibt es keine Alternative?

    – Ken Hadden

    15. Juli 2021 um 0:17 Uhr

  • Abgesehen davon, wenn ein Build auf diese Weise fehlschlägt (mit einem Node-Gyp-gesteuerten nativen Kompilierungsproblem), gibt es eine Möglichkeit, die teilweise kompilierten Ergebnisse/Artefakte für weitere Untersuchungen beizubehalten? In meinem Fall erhalte ich den Fehler, aber dann werden die kompilierten Quellen/Binärdateien durch den Rest des npm-Prozesses bereinigt (also habe ich keine Möglichkeit, den Fehler detaillierter zu beheben).

    – Janaka Bandara

    19. Januar 2022 um 14:26 Uhr

Die Fehlermeldungen haben bei mir Verwirrung gestiftet und mir nicht geholfen, die Fehler vollständig zu beheben.

Die README.md Pro Knoten-gyp project listet die Installationsanweisungen für Unix, Max OS X und Windows.

In Windows Systeme können Sie entweder mit Option 1 oder Option 2 gehen, aber die Hauptsache ist, dass Sie die installieren müssen Visual C++-Buildtools.

Das folgende Zitat stammt aus der Windows Installationsabschnitt:

  • Unter Windows:
    • Visual C++ Build-Umgebung:
      • Option 1: Installieren Sie Visual C++ Build Tools mit der Standardinstallationsoption.
      • Option 2: Installieren Sie Visual Studio 2015 (oder ändern Sie eine vorhandene Installation) und wählen Sie aus Allgemeine Tools für Visual C++ während der Einrichtung. Dies funktioniert auch mit den kostenlosen Editionen Community und Express for Desktop.

      [Windows Vista / 7 only] erfordert .NET Framework 4.5.1

    • Installieren Sie Python 2.7 (v3.xx wird nicht unterstützt) und ausführen
      npm config set python python2.7

      (oder siehe unten für weitere Anweisungen zur Angabe der richtigen Python-Version und des richtigen Pfads.)

    • cmd starten,
      npm config set msvs_version 2015

Wenn die obigen Schritte bei Ihnen nicht funktioniert haben, finden Sie weitere Tipps in den Node.js-Richtlinien für Windows von Microsoft.

Allgemeine Anweisungen für die Python-Konfiguration:

Wenn Sie mehrere Python-Versionen installiert haben, können Sie feststellen, welche Python-Version node-gyp verwendet, indem Sie die Variable „–python“ setzen:

$ node-gyp --python /path/to/python2.7

Wenn node-gyp über npm aufgerufen wird und Sie mehrere Versionen von Python installiert haben, können Sie den ‘python’-Konfigurationsschlüssel von npm auf den entsprechenden Wert setzen:

$ npm config set python /path/to/executable/python2.7

Ich habe mein System gemäß den obigen Anweisungen erfolgreich konfiguriert.

Systeminformationen

λ ver

Microsoft Windows [Version 6.1.7601]

λ node -v
v6.2.0
λ npm -v
3.9.2

Links zu relevanten Tools / Artikeln:

Visual C++-Buildtools

Visual Studio 2015

.NET Framework 4.5.1

Python 2.7

Node.js-Richtlinien von Microsoft für Windows

  • Unter Windows möchten Sie npm config set msvs_version=2015 –global ausführen

    – mjwrazor

    8. November 2016 um 21:31 Uhr

  • > node-gyp --python D:\Python27\python.exe – ‘node-gyp’ wird nicht als interner oder externer Befehl, lauffähiges Programm oder Batch-Datei erkannt.

    – Alexej Konzewitsch

    11. Dezember 2017 um 19:00 Uhr

  • npm config set python D:\Python27\python.exe hat auch nicht geholfen: stackoverflow.com/q/47759310/630169

    – Alexej Konzewitsch

    11. Dezember 2017 um 19:01 Uhr


  • Diese Antwort hat nichts mit der Frage zu tun, die über die gefragt npm install verursacht node-gyp rebuild aus dem falschen Arbeitsverzeichnis auszuführen!

    – Nurbol Alpysbayev

    12. September 2019 um 23:30 Uhr

Ich habe alle oben genannten Lösungen ausprobiert, aber keine davon hat funktioniert. Mein Problem war mit einigen Dateien im Stammverzeichnis, die ich löschen musste:

package-lock.json und yarn.lock und yarn-error.log

Nachdem ich diese Dateien entfernt hatte, lief ich:

npm cache clean --force

dann habe ich den Befehl ausgeführt:

npm install

und der Fehler war weg

  • ‘npm cache clean –force’ dann ‘npm install’ hat bei mir funktioniert. Danke 🙂

    – ahmed_khan_89

    24. Juni 2021 um 22:16 Uhr

  • Das ist eine riesige Hilfe – package-lock.json weg und der Cache sauber – hat super funktioniert! Danke vielmals.

    – Dreck

    20. Oktober 2022 um 14:08 Uhr

Versuchen Sie erneut mit zu installieren --force option:

npm install --force

Wenn dies nicht funktioniert, versuchen Sie, npm global zu aktualisieren:

npm update -g npm 

und versuchen Sie es erneut mit der --force Möglichkeit.

  • hat nicht funktioniert. Aber ich denke, es hat etwas mit den Node-Gyp-Anforderungen zu tun. Auf der Website steht, dass Visual Studio installiert sein muss.

    – Oliver Watkins

    25. November 2015 um 10:34 Uhr

  • Ich habe diesen Ansatz ausprobiert … Aber er hat bei mir nicht funktioniert. Es feuert die gleichen Fehler wie zuvor. Bitte überprüfen Sie dieses Problem: stackoverflow.com/questions/34335043/… Vielleicht haben Sie einige nützliche Ratschläge für mich …

    – Dmytro Medvid

    26. Dezember 2015 um 9:26 Uhr


Ich hatte fast das gleiche Problem auf dem Mac. Ich habe viele Spam-Fehlermeldungen erhalten, aber schließlich habe ich das Problem erkannt, es war ein Versionskonflikt …

Beschreibung:

npm install ist beim Installieren von gyp (node-gyp) fehlgeschlagen:

npm ERR! gyp ERR! node -v v16.2.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok 
npm ERR! Build failed with error code: 1

Lösung:

Downgrade von npm / node auf stabile Version!

Versuchen:

Installieren Sie ‘n’: npm i -g n

Downgrade von npm: sudo n stable

Wiederholung npm install und das funktioniert!

Das letzte Mal, als ich einen ähnlichen Fehler sah, lag es daran, dass ich die falsche Version von verwendet habe npm und/oder node für eine meiner Abhängigkeiten. Versuchen Sie, diese zu aktualisieren, und versuchen Sie es erneut.

Bevor Sie es erneut versuchen, entfernen Sie Ihre node_modules Verzeichnis.

Möglicherweise müssen Sie untersuchen, welche Versionen von npm und node Ihre Abhängigkeiten benötigen. Sie können die neuesten Versionen aller Ihrer Abhängigkeiten, Knoten und npm ausprobieren.

Überprüfen Sie, welche Versionen Ihre Kollegen verwenden.

Welches Betriebssystem verwenden Sie? Das kann Auswirkungen haben, da die Version von CLANG möglicherweise anders ist.

  • node_modules auch aus dem nodejs-Verzeichnis entfernen?

    – Oliver Watkins

    24. November 2015 um 16:59 Uhr

  • Nur wenn Sie auch die globalen Pakete neu installieren

    – Softino

    24. November 2015 um 18:19 Uhr

  • mit Windows 7. Habe alles versucht, was Sie gesagt haben, aber immer noch das gleiche Problem. Scheint, als müsste ich Visual Studio oder ähnliches installiert haben.

    – Oliver Watkins

    25. November 2015 um 10:35 Uhr

  • Können Sie weitere Details hinzufügen, wie alle Abhängigkeiten überprüft werden? Ich habe ein ähnliches Problem und habe hier einige Details hinzugefügt: stackoverflow.com/questions/34335043/… Vielleicht haben Sie einige nützliche Ratschläge für mich?

    – Dmytro Medvid

    26. Dezember 2015 um 9:22 Uhr

Wenn Sie „node-sass“ verwenden, aktualisieren Sie es auf Version 5.0.0, stellen Sie sicher, dass Sie Build Tools 2017 und Python 3 installiert haben, und führen Sie diese Befehle vor der Installation von npm aus

npm config set msvs_version 2017

npm config set python npm config set python C:\Users\username\AppData\Local\Programs\Python\Python39\python.exe

  • node_modules auch aus dem nodejs-Verzeichnis entfernen?

    – Oliver Watkins

    24. November 2015 um 16:59 Uhr

  • Nur wenn Sie auch die globalen Pakete neu installieren

    – Softino

    24. November 2015 um 18:19 Uhr

  • mit Windows 7. Habe alles versucht, was Sie gesagt haben, aber immer noch das gleiche Problem. Scheint, als müsste ich Visual Studio oder ähnliches installiert haben.

    – Oliver Watkins

    25. November 2015 um 10:35 Uhr

  • Können Sie weitere Details hinzufügen, wie alle Abhängigkeiten überprüft werden? Ich habe ein ähnliches Problem und habe hier einige Details hinzugefügt: stackoverflow.com/questions/34335043/… Vielleicht haben Sie einige nützliche Ratschläge für mich?

    – Dmytro Medvid

    26. Dezember 2015 um 9:22 Uhr

Benutzeravatar von Aloiso Gomes
Aloiso Gomes

Versuchen Sie, den aktuellen node_modules-Ordner zu löschen, und führen Sie den Befehl als normaler Benutzer, Nicht-Administrator oder Root aus

1438440cookie-checkDie NPM-Installation schlägt mit node-gyp fehl

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy