无法使用npm安装prerender - "无法找到:CL.exe"

时间:2015-10-20 14:29:50

标签: node.js npm prerender

我一直在尝试在本地计算机上安装PreRender.Io进行测试。我已经安装了Python 2.7.10。当我输入:

npm install prerender

它出错了:

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

我无法找到CL.exe,在Google上快速搜索似乎是一些缺少的Visual C ++编译器。但是,我尝试安装说VC ++ 2008可再发行的x86,但仍然存在同样的问题。

知道可能出现什么问题吗?操作系统是Windows 7 64位。

3 个答案:

答案 0 :(得分:53)

我设法解决了这个问题,虽然这很奇怪。老实说,我不确定哪一个完全解决了,因为我做了很多事。我在我的机器上安装了Visual Studio 2015。以下是我所做的总结:

  • 从VS 2015安装中安装 Visual C ++编译器。默认情况下,它是未被攻击的。我认为这就解决了这个问题。

  • 添加了 CL.exe (C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin) stdlib.h (C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include) PATH <的路径/ strong>环境变量。

  • 执行Visual Studio 2015中 npm install prerender Developer Command Prompt,以管理员模式
  • 运行

答案 1 :(得分:0)

我正在阅读Angular JS教程并遇到此问题,但他们的文档表明这不是问题:

“我们经常在一系列gyp ERR!消息后看到一条npm WARN消息。忽略它们。一个包可能会尝试使用node-gyp重新编译自己。如果重新编译失败,则包恢复(通常使用一个预建的版本),一切正常。“

strptime()

答案 2 :(得分:0)

对我来说,安装新版本的节点后出现问题。 npm install会显示上面的错误。然后我得到了上面的错误但不是包PreRender.Io但是对于gulp-sass,虽然我相信问题有相同的根。为了解决这个问题,我安装了我以前使用过的节点版本(6.9.5),然后我使用nvm管理节点版本,如下所述:https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/

使用nvm切换到以前版本的节点意味着我可以执行npm install而无需安装我最终不会使用的大型SDK。