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
Verwenden Sie den Parameter msvs_version: npm install --msvs_version=2015
Wenn der Parameter msvs_version nicht funktioniert, liegt dies wahrscheinlich daran, dass Sie keine Visual C++ 2015-Buildumgebung installiert haben.
Als Alternative zu VS2015 können Sie die von Microsoft veröffentlichten Visual C++ Build Tools 2015 installieren:
Nun, da eine Visual C++ 2015-Buildumgebung installiert wurde, können Sie npm über den Parameter msvs_version die Verwendung dieser Option mitteilen:
npm install --msvs_version=2015
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
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.
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.
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 :/
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