Lors de l'exécution d'un npm install
nécessitant une reconstruction par noeud-gyp, l'erreur de construction suivante a été générée:
MSB8020: Les outils de génération de v120 (Platform Toolset = 'v120') ne peuvent pas prendre en charge être trouvé. Pour compiler en utilisant les outils de compilation v120, veuillez installer v120 construire des outils. Vous pouvez également effectuer une mise à niveau vers le Visual actuel Studio en sélectionnant le menu Projet ou en cliquant avec le bouton droit de la souris sur solution, puis en sélectionnant "solution Retarget"
Utilisez le paramètre msvs_version: npm install --msvs_version=2015
Si le paramètre msvs_version ne fonctionne pas, c'est probablement parce qu'aucun environnement de génération Visual C++ 2015 n'est installé.
Au lieu de VS2015, vous pouvez installer le Visual C++ Build Tools 2015 publié par Microsoft:
Maintenant qu'un environnement de construction Visual C++ 2015 a été installé, vous pouvez indiquer à npm de l'utiliser via le paramètre msvs_version:
npm install --msvs_version=2015
Au lieu de spécifier msvs_version à l'invite de commande, vous pouvez éventuellement configurer npm de manière à toujours inclure le paramètre msvs_version en l'ajoutant à votre fichier npmrc ou package.json:
npmrc
Ouvrez PowerShell et exécutez npm config set msvs_version 2015
, qui ajoutera ce paramètre à votre fichier utilisateur npmrc. Désormais, chaque fois que vous exécuterez npm install
, en tant que cet utilisateur, le paramètre msvs_version=2015
sera automatiquement inclus.
vous pouvez éventuellement inclure l'indicateur global
npm config set msvs_version 2015 --global
si vous prévoyez de vous connecter avec différents comptes Windows et si vous souhaitez que ce paramètre s'applique à tous les comptes de la machine.
package.json
Modifiez le fichier package.json de votre projet pour inclure:
"config": {
"msvs_version": 2015
}
Désormais, à chaque fois que vous exécuterez npm install
, pour ce projet, le paramètre msvs_version=2015
sera automatiquement inclus.
Révisions d'article
Je voulais ajouter un commentaire à la réponse de 2Toad, mais stackoverflow ne me laisse pas… .. Vous pouvez définir la version globale msvs_version à l'aide de cette commande:
npm config set msvs_version 2015 --global
Cela vous évite de le placer dans chaque objet de configuration de projets.
Je vais partager cette réponse car aucun des autres correctifs n'a résolu mon problème. J'avais les mêmes erreurs mais en paramétrant msvs:
npm install --msvs_version=2015
ne résolvait pas le problème. Je pouvais voir qu'il cherchait le jeu d'outils au mauvais endroit, peu importe ce que je faisais.
Longue histoire, j'ai appris que MSBuild est maintenant fourni avec Visual Studio et non plus .NET. Bien sûr, j'avais cette entrée dans la variable PATH:
C:\Windows\Microsoft.NET\Framework\v4.0.30319;
et par conséquent, la mauvaise version (ancienne) de MSBuild a été appelée. J'ai supprimé cette entrée et ajouté le chemin suivant, pertinent pour VS2015:
C:\Program Files (x86)\MSBuild\14.0\Bin\
Problème résolu.
Je passe déjà 2 jours à installer toutes les versions de VS ...
npm install oracledb --msvs_version=2015
Renvoie toutes les erreurs:
[..]node-gyp\6.9.1\include\node\v8.h(18): fatal error C1083[..]
En utilisant
npm install oracledb --msvs_version=2013
Renvoie beaucoup d'avertissements, compile mais ne fonctionne pas correctement après.
[..]warning C4995: 'v8::Value::ToUint32'[..]
C'est ma pire expérience avec un module NPM. Quelle perte de temps :/
Définir la version sur 2015 ne m'a pas aidé. Essayez de le régler sur 2013 à la place:
npm config set msvs_version 2013
ou
ensemble de configuration npm msvs_version 2015