node node.js npm prerender

node.js - node - no se pudo instalar prerender usando npm-"Falló la localización: CL.exe"



prerender github (3)

He estado intentando instalar PreRender.Io en mi máquina local para probar. Instalé Python 2.7.10. Cuando escribo:

npm install prerender

Da un error:

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

No pude localizar CL.exe, y una búsqueda rápida en Google parece ser un compilador de Visual C ++ que falta. Sin embargo, traté de instalar decir VC ++ 2008 redistribuible x86, pero igual problema.

¿Alguna idea de lo que podría estar mal? El sistema operativo es Windows 7 de 64 bits.


Acabo de pasar por un tutorial de Angular JS y tuve este problema, pero sus documentos sugieren que no es un problema:

"A menudo vemos un mensaje WARN npm después de una serie de mensajes ERR! De gyp. Los ignoramos. Un paquete puede intentar compilarse usando node-gyp. Si la compilación falla, el paquete se recupera (generalmente con un pre-compilación). versión construida) y todo funciona ".

https://angular.io/guide/quickstart


Logré resolver el problema, aunque fue bastante extraño. Honestamente, no estoy seguro de cuál resolvió completamente ya que he hecho algunas cosas. Instalé Visual Studio 2015 en mi máquina. A continuación hay un resumen de lo que hice:

  • Compilador de Visual C ++ instalado, de la instalación de VS 2015. Por defecto no fue seleccionado. Creo que esto es lo que solucionó el problema.

  • Se agregó la ruta donde CL.exe (C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin) y stdlib.h (C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include) son ubicado a la variable de entorno PATH .

  • Se ejecutó la npm install prerender desde el Developer Command Prompt en Visual Studio 2015, ejecutándose en modo Administrador

Para mí, el problema vino después de instalar una nueva versión del nodo. La instalación de npm mostraría el error anterior. Luego recibí el error anterior, pero no para el paquete PreRender.Io, sino para gulp-sass, aunque creo que el problema tiene la misma raíz. Para resolverlo, instalé la versión anterior del nodo que había estado usando (6.9.5) y luego usé nvm para administrar las versiones de nodo como se describe aquí: https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/

Cambiar a la versión anterior del nodo usando nvm significaba que podía hacer la instalación de npm sin tener que instalar un SDK grande que no iba a terminar usando.