Vraag npm installeren voor sommige pakketten (sqlite3, socket.io) mislukken met fout MSB8020 op Windows 7


Bij het installeren van sommige node.js-pakketten (met name sqlite3 en socket.io) met npm install socket.io op mijn Windows 7-machine met Visual Studio 2012 (en niet 2010) had ik een aantal fouten die er als volgt uitzagen:

C: \ Program Files   (X86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp.Platform.targets (35,5):   error MSB8020: De buildtools voor Visual Studio 2010 (Platform   Toolset = 'v100') kan niet worden gevonden. Om te bouwen met behulp van de build v100   gereedschappen, klikt u op het menu Project of klikt u met de rechtermuisknop op de oplossing en   selecteer vervolgens "Update VC ++ Projects ...". Installeer Visual Studio 2010 voor   bouwen met behulp van de build-tools van Visual Studio 2010.


46
2018-01-06 06:44


oorsprong


antwoorden:


Om dit op mijn machine te omzeilen deed ik dit commando om het pakket te installeren:

npm install socket.io --msvs_version=2012

Ik vond het antwoord hier wanneer het probleem is met het installeren van sqlite3 en het werkte ook met socket.io.

Dit kunnen meer permanente oplossingen zijn om het probleem op te lossen:

  1. Installeer Visual Studio 2010
  2. Het updaten van de npm interne kopie naar een nieuwere versie van node-gyp zoals beschreven hier en hier (waarschijnlijk de betere optie, hoewel ik het niet heb laten werken maar niet te lang heb geprobeerd)

83
2018-01-06 06:44



Een andere optie is om config te veranderen in plaats van msvs_version elke keer te specificeren:

npm config set msvs_version 2012

75
2018-03-01 22:03



Ik heb zowel Visual Studio Express 2013 als Visual Studio Community 2015 geïnstalleerd.

Ik kreeg C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". [G:\work\cinema\node_modules\engine.io\node_modules\bufferutil\build\bufferutil.vcxproj]

De reden was dat de nieuwste Node.js voor Windows werd gedownload van https://nodejs.org bevat een oud npm v2 (en oud node-gyp daarbinnen npm v2).

Ik moest intern Node.js'es updaten npm (die ook is bijgewerkt node-gyp):

(open console as an administrator)
cd "C:\Program Files\nodejs"
npm install npm@latest

npm config set msvs_version 2013

Nu werkt het (lijkt het voorlopig VS 2013 te gebruiken)


2
2017-10-16 21:15



TL; DR

als jij NIET willen node-gyp afhankelijk van uw geïnstalleerde versie van Visual Studio (of VS niet geïnstalleerd), installeer windows-build-tools (zie hieronder). Hiermee wordt zowel de fout verwijderd als toekomstige problemen bij het upgraden van uw geïnstalleerde versie van Visual Studio.

als jij DO willen node-gyp afhankelijk zijn van uw geïnstalleerde versie van Visual Studio npm config set msvs_version 2015, vervang uw verstag in plaats van 2015. Geldige versie-tags zijn: 2015,2014,2013,110,100


Bevestigen met windows-build-tools

Per de node-gyp installatie-instructies, je kunt ook doen

npm install --global --production windows-build-tools van een VERHOOGD command shell

Hiermee wordt het strikt Microsoft Visual C ++ Build Tools (dit wordt gebruikt in plaats van Visual Studio voor compilatie) vereist door node-gypen op de juiste manier ingesteld msvs_version naar de zojuist geïnstalleerde versie.

Na de installatie moet u controleren of de msvs_version ingesteld door windows-build-tools is niet genegeerd. Bij het uitvoeren npm config list, msvs_version zou moeten verschijnen onder ; globalconfig C:\Users\Username\AppData\Roaming\npm\etc\npmrc; als dat niet het geval is, wordt de waarde ingesteld met windows-build-tools is opgeheven en de overschreven waarde moet worden verwijderd. npm config delete msvs_version zou de overschreven waarde moeten verwijderen en die ingesteld door de build tools zou moeten verschijnen onder de global config sectie.


0
2017-10-29 18:02