web-dev-qa-db-fra.com

n'a pas pu installer prerender à l'aide de npm - "Échec de la localisation: CL.exe"

J'ai essayé d'installer PreRender.Io sur mon ordinateur local pour le tester. J'ai installé Python 2.7.10. Quand je tape:

npm install prerender

Cela donne une erreur:

C:\PreRender\node_modules\prerender\node_modules\phantom\node_modules\dnode\node
_modules\weak>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\
node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js"
rebuild )  else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the
 file specified. [C:\PreRender\node_modules\prerender\node_modules\phantom\node
_modules\dnode\node_modules\weak\build\weakref.vcxproj]


gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` fail
ed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\
npm\node_modules\node-gyp\lib\build.js:269:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1074
:12)
gyp ERR! System Windows_NT 6.1.7601

Je ne pouvais pas localiser CL.exe et une recherche rapide sur Google semble être un compilateur Visual C++ manquant. Cependant, j'ai essayé d'installer disons VC++ 2008 x86 redistribuable, mais toujours le même problème.

Une idée de ce qui pourrait être faux? Le système d'exploitation est Windows 7 64 bits.

25
Karl Cassar

J'ai réussi à résoudre le problème, même si c'était assez étrange. Honnêtement, je ne suis pas sûr de savoir lequel l'a résolu complètement, car j'ai déjà fait pas mal de choses. J'avais installé Visual Studio 2015 sur ma machine. Vous trouverez ci-dessous un résumé de ce que j'ai fait:

  • Installé Compilateur Visual C++ , à partir de l'installation de VS 2015. Par défaut, il était décoché. Je pense que c'est ce qui a résolu le problème.

  • Ajout du chemin/ CL.exe (C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin) et stdlib.h (C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include) sont situés dans la variableCHEMINenvironnement.

  • Exécuté le npm install prerender à partir duDeveloper Command Promptin de Visual Studio 2015, s'exécutant en mode Administrateur
53
Karl Cassar

Je viens de lire un tutoriel sur Angular JS et ce problème existe, mais leur documentation suggère que ce n'est pas un problème:

"Nous voyons souvent un message WARN npm après une série de messages gyp ERR!. Ignorez-les. Un paquet peut essayer de se recompiler en utilisant node-gyp. Si la recompilation échoue, le paquet récupère (généralement avec une version construite) et tout fonctionne. "

https://angular.io/guide/quickstart

0
Antfish

Pour moi, le problème est survenu après l'installation d'une nouvelle version du noeud. npm install afficherait l'erreur ci-dessus. Ensuite, j'ai eu l'erreur ci-dessus, mais pas pour le paquet PreRender.Io, mais pour gulp-sass, bien que je pense que le problème a la même racine. Pour résoudre ce problème, j’ai installé la version précédente du noeud que j’avais utilisé (6.9.5), puis j’ai utilisé nvm pour gérer les versions des noeuds comme décrit ici: https://www.sitepoint.com/quick-tip- multiple-versions-node-nvm/

Passer à la version précédente du noeud à l'aide de nvm signifiait que je pouvais installer npm sans avoir à installer un SDK volumineux que je n'allais pas utiliser.

0
johnstaveley