Lorsque vous essayez d'installer certains packages node.js (sqlite3 et socket.io en particulier) en utilisant npm install socket.io
sur ma machine Windows 7 avec Visual Studio 2012 (et non 2010), j'ai eu quelques échecs qui ressemblaient à ceci:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets (35,5): erreur MSB8020: Les outils de génération pour Visual Studio 2010 (Platform Toolset = 'v100 ') ne peut être trouvé. Pour générer à l'aide des outils de génération v100, cliquez sur le menu Projet ou cliquez avec le bouton droit sur la solution, puis sélectionnez "Mettre à jour les projets VC++ ...". Installez Visual Studio 2010 pour générer à l'aide des outils de génération de Visual Studio 2010.
Pour contourner cela sur ma machine, j'ai fait cette commande pour installer le package:
npm install socket.io --msvs_version=2012
J'ai trouvé la réponse ici lors du problème d'installation de sqlite3 et cela fonctionnait aussi avec socket.io.
Il peut s'agir de solutions plus permanentes pour résoudre le problème:
Une autre option consiste à changer la configuration au lieu de spécifier msvs_version à chaque fois:
npm config set msvs_version 2012
J'ai installé Visual Studio Express 2013 et Visual Studio Community 2015.
J'obtenais 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]
La raison en était que le dernier Node.js pour Windows téléchargé depuis https://nodejs.org contient un ancien npm
v2 (et l'ancien node-gyp
dans ce npm
v2).
J'ai dû mettre à jour le npm
interne de Node.js (qui a également mis à jour le node-gyp
):
(open console as an administrator)
cd "C:\Program Files\nodejs"
npm install npm@latest
npm config set msvs_version 2013
Maintenant ça marche (semble utiliser VS 2013 pour le moment)
Si vous NE FAITES PAS voulez node-gyp
pour dépendre de votre version installée de Visual Studio (ou si VS n'est pas installé), installez windows-build-tools
(voir ci-dessous). Cela éliminera à la fois l'erreur et devrait éviter de futurs problèmes lors de la mise à niveau de votre version installée de Visual Studio.
Si vous [~ # ~] voulez [~ # ~] voulez node-gyp
selon votre version installée de Visual Studio, puis npm config set msvs_version 2015
, remplacez votre balise de version à la place de 2015
. Les balises de versions valides sont: 2015
, 2014
, 2013
, 110
, 100
windows-build-tools
Selon les instructions d'installation de node-gyp , vous pouvez également faire
npm install --global --production windows-build-tools
depuis une commande [~ # ~] élevée [~ # ~] Shell
Cela installera strictement les outils de construction de Microsoft Visual C++ (ceci sera utilisé à la place de Visual Studio pour la compilation) requis par node-gyp
, et définissez correctement msvs_version
à la version qui vient d'être installée.
Après l'installation, vous devez vérifier que le msvs_version
défini par windows-build-tools
n'a pas été remplacé. Lors de l'exécution de npm config list
, msvs_version
devrait apparaître sous ; globalconfig C:\Users\Username\AppData\Roaming\npm\etc\npmrc
; si ce n'est pas le cas, la valeur définie par windows-build-tools
a été remplacé et la valeur remplacée doit être supprimée. npm config delete msvs_version
devrait supprimer la valeur remplacée et celle définie par les outils de construction devrait apparaître sous la section de configuration globale.