wake-up-neo.com

npm install Fehler: "Die Build-Tools für v120 (Platform Toolset = 'v120') wurden nicht gefunden."

Bei der Ausführung eines npm install, für den eine Neukonfiguration von Knoten und Gyps erforderlich war, wurde der folgende Build-Fehler ausgegeben:

MSB8020: Die Build-Tools für v120 (Platform Toolset = 'v120') können nicht gefunden werden. Um mit den Build-Tools von v120 zu erstellen, installieren Sie v120. Werkzeuge bauen. Alternativ können Sie auf das aktuelle Visual .__ aktualisieren. Studio-Tools: Wählen Sie das Menü Projekt oder klicken Sie mit der rechten Maustaste auf. Lösung und dann "Retarget-Lösung" auswählen

System Information

  • Windows 10 (x64)
  • Visual Studio 2015
  • knoten v0.12.7
  • npm v2.11.3
  • node-gyp v2.0.1
18
2Toad

tl; dr

Verwenden Sie den Parameter msvs_version: npm install --msvs_version=2015

Was ist, wenn der Parameter msvs_version nicht funktioniert?

Wenn der Parameter msvs_version nicht funktioniert, liegt dies wahrscheinlich daran, dass Sie keine Visual C++ 2015-Buildumgebung installiert haben.

Installieren Sie Visual C++ Build Environment

Option 1: Visual Studio 2015

  1. Wählen Sie während der VS2015-Installation "Benutzerdefiniert". Wenn Sie VS2015 bereits installiert haben, gehen Sie zu Windows "Deinstallieren oder Ändern eines Programms"> wählen Sie VS2015 aus der Liste aus> klicken Sie auf "Ändern"> klicken Sie auf "Ändern"
  2. Aktivieren Sie die Option "Gemeinsame Tools für Visual C++ 2015" unter "Programmiersprachen"> "Visual C++".
  3. Beenden Sie die Installation des VS2015

Option 2: Visual C++ Build Tools 2015

Als Alternative zu VS2015 können Sie die von Microsoft veröffentlichten Visual C++ Build Tools 2015 installieren:

  1. Wählen Sie während der VC++ - Installation "Custom" aus.
  2. Überprüfen Sie die Optionen "Windows 8.1 SDK" und "Windows 10 SDK"
  3. Beenden Sie die VC++ - Installation

Verwenden Sie msvs_version

Nun, da eine Visual C++ 2015-Buildumgebung installiert wurde, können Sie npm über den Parameter msvs_version die Verwendung dieser Option mitteilen:

  1. Öffnen Sie die PowerShell
  2. Verwenden Sie den Parameter msvs_version: npm install --msvs_version=2015

Konfigurationsoptionen (nicht erforderlich)

Anstatt die msvs_version an der Eingabeaufforderung anzugeben, können Sie npm optional so konfigurieren, dass der msvs_version-Parameter immer eingeschlossen wird, indem Sie ihn zu npmrc oder package.json hinzufügen:

npmrc

Öffnen Sie PowerShell, und führen Sie npm config set msvs_version 2015 aus. Dadurch wird dieser Parameter der Benutzer-npmrc-Datei hinzugefügt. Von nun an wird jedes Mal, wenn Sie npm install als diesen Benutzer ausführen, automatisch der msvs_version=2015-Parameter eingefügt

optional können Sie das globale Flag npm config set msvs_version 2015 --global einschließen, wenn Sie sich mit verschiedenen Windows-Konten anmelden möchten und diese Einstellung für alle Konten auf dem Computer gelten soll

package.json

Ändern Sie die package.json-Datei Ihres Projekts so, dass sie Folgendes enthält:

"config": {
  "msvs_version": 2015
}

Jedes Mal, wenn Sie npm install ausführen, wird für dieses Projekt automatisch der msvs_version=2015-Parameter eingefügt


Artikelrevisionen

  1. Schritte wurden nach weiteren Untersuchungen überarbeitet, inspiriert von Chucks Kommentar zum Toolset v120 (Danke @ChuckWalbourn)}
  2. Hinzugefügte Konfigurationsoptionen
  3. Option "VC++ Build Tools" hinzugefügt
  4. Aktualisierter Link zu VC++ Build Tools für die offizielle Veröffentlichung
44
2Toad

Ich wollte einen Kommentar zu 2Toads Antwort hinzufügen, aber stackoverflow lässt mich nicht zu ... Sie können die msvs_version global mit diesem Befehl einstellen:

npm config set msvs_version 2015 --global

Dies erspart Ihnen das Einfügen in jedes Projekt-Konfigurationsobjekt.

4
user2129024

Ich werde diese Antwort teilen, da keine der anderen Korrekturen mein Problem gelöst hat. Ich hatte die gleichen Fehler, aber das msvs param eingestellt:

npm install --msvs_version=2015 

löste das Problem nicht. Ich konnte sehen, dass das Toolset am falschen Ort gesucht wurde, egal was ich tat.

Um es kurz zu machen: Ich habe gelernt, dass MSBuild jetzt mit Visual Studio und nicht mehr mit .NET verpackt ist. Natürlich hatte ich diesen Eintrag in der PATH-Variable:

C:\Windows\Microsoft.NET\Framework\v4.0.30319;

und folglich wurde die falsche (alte) Version von MSBuild aufgerufen. Ich habe diesen Eintrag entfernt und den folgenden Pfad hinzugefügt, der für VS2015 relevant ist:

C:\Program Files (x86)\MSBuild\14.0\Bin\

Problem gelöst.

2
spryce

Ich verbringe bereits 2 Tage damit, alle VS-Versionen zu installieren ...

npm install oracledb --msvs_version=2015

Alle Fehler zurückgeben:

[..]node-gyp\6.9.1\include\node\v8.h(18): fatal error C1083[..]

Verwenden 

npm install oracledb --msvs_version=2013

Liefert viele Warnungen zurück, kompiliert aber danach nicht mehr richtig.

[..]warning C4995: 'v8::Value::ToUint32'[..]

Dies ist meine schlechteste Erfahrung, die ich jemals mit einem npm-Modul gemacht habe. Was für eine Zeitverschwendung :/

1
Wifsimster

Die Einstellung der Version auf 2015 hat mir nicht geholfen. Setzen Sie es stattdessen auf 2013:

npm config set msvs_version 2013

oder

npm config set msvs_version 2015

0
tornord