如何在Windows上安装节点js canvas

时间:2013-08-19 09:32:05

标签: javascript windows node.js canvas cairo

我正在尝试在节点js上使用canvas。我正在使用Windows Vista。在基本方法npm install canvas失败后(请参阅下面的错误),我查了一些教程,这是我尝试过的:

来源:
installing-node-canvas-for-windows
LearnBoost/node-canvas/wiki/Installation---Windows

登录控制台(在cmd中运行npm install canvas后):
log包含几个警告,我不是这些问题 - 它主要是'从double转换为float',并且一个错误标记为红色:

init.cc
d:\pathToApp\node_modules\canvas\src\PNG.h(5): fatal error C1083: Cannot
open include file: 'cairo.h': No such file or directory [d:\pathToApp\n
ode_modules\canvas\build\canvas.vcxproj]

在日志的最后有:

gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\
npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:
12)
gyp ERR! System Windows_NT 6.0.6002
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modu
les\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd d:\pathToApp\node_modules\canvas
gyp ERR! node -v v0.10.16
gyp ERR! node-gyp -v v0.10.9
gyp ERR! not ok
npm ERR! weird error 1
npm ERR! not ok code 0

之后,node-module文件夹中没有任何内容(没有canvas子目录,安装失败后npm删除了子目录)。

所以我也尝试从github手动下载canvas模块,在node-modules中解压缩,然后在node-modules / canvas中成功运行node-gyp configurenode-gyp build,这不幸地给了我相同的错误Cannot open include file: 'cairo.h'

我已仔细阅读了我在此发现的所有内容。如果您能提出任何帮助,请执行此操作。

5 个答案:

答案 0 :(得分:4)

我已经设法让它在我的新Windows 8机器上运行,所以我想分享一些对其他人有帮助的细节。

我正在使用:

程序

请确保路径中包含 Python 2 GTK \ bin

我已从https://github.com/Automattic/node-canvas手动下载文件并将其保存到 node_modules / canvas

然后我在canvas目录中运行node-gyp configure build。发生错误。我必须编辑 binding.gyp https://github.com/Automattic/node-canvas/blob/master/binding.gyp)才能匹配GTK文件夹中的实际文件。

例如:

  • 第59行:"(GTK_Root)/lib/libpng.lib" - > "(GTK_Root)/lib/libpng.dll.a"
  • 第34行:"(GTK_Root)/bin/libpng14-14.dll" - > "(GTK_Root)/bin/libpng15-15.dll"
  • ...

可以有更多,您应该能够从错误日志中读取哪些文件出现问题,然后编辑名称以匹配GTK文件夹中的文件。

编辑binding.gyp后,命令node-gyp configure build成功完成。虽然我无法在Canvas中使用一些jpg文件(我还没有正确测试),但png文件工作正常。

如果node-gyp失败

你可能会发现,每个node-gyp命令都会失败并显示消息(可能标记为红色),类似于:

" ... bcrypt_lib.vcxproj(47,46):错误MSB4025:无法加载文件项目。指定编码的无效字符。第47行,第46位。"

这很可能是因为您的用户文件夹名称中包含特殊字符。 (事实上​​,Windows 8自动从您的名字创建用户文件夹的名称是关于Win 8的最糟糕的事情。)

2个快速解决方案:

希望这有帮助。

答案 1 :(得分:1)

经过漫长的艰苦过程,我设法在windows上工作。我有最后几条建议,你可能会尝试我在我的名单上。

将所有dll文件从c:\ GTK复制到canvas \ build \ Release文件夹。

将IEShims.dll从c:\ program files(x86)\ Internet Explorer复制到canvas \ build \ Release文件夹。

然后运行node-gyp build。

祝你好运。

答案 2 :(得分:1)

我在尝试安装paperjs时遇到了问题。

这对我有用。

我的具体细节

GTK

请务必阅读自述文件。这里有必要的说明我第一次忽略了。例如:

  

运行:pkg-config --cflags gtk+-2.0

     

运行:gtk-demo并验证其是否有效

正在运行pkg-config告诉我,我需要在<GTK Directory>\lib\pkgconfig环境变量中添加PKG_CONFIG_PATH

画布

我用这个作为指南: https://github.com/LearnBoost/node-canvas/wiki/Installation---Windows

注意:我的计算机上安装了Visual Studio 2010,2012和2013,因此我没有必要处理MSVC依赖项。

npm install canvas总是失败 - 并且自己清理(混蛋) - 所以我从npm-cache中抓取了缓存的版本: %USERPROFILE%\AppData\Roaming\npm-cache\canvas\1.1.3\package。将此目录复制到项目的node_modules目录并将其重命名为canvas。在命令行上输入新创建的canvas目录。

运行npm install nan

在您成功运行node-gyp configure之前,您需要在binding.gyp

中验证您的GTK路径

第5行:

  

&#39; GTK_Root%&#39;:&#39; C:/ GTK&#39;,#设置GTK多功能一体机的位置

现在您可以尝试node-gyp configure。如果这是成功的,真棒! 现在您可以构建它:node-gyp build

应该这样做。如果您正在尝试安装纸张,现在就可以。万岁!

如果这不起作用,或者你要添加一些东西,不要害羞!请评论,以便我们都能受益。

答案 3 :(得分:0)

您需要捆绑在GTK中的cairo库

答案 4 :(得分:0)

Here is the most up-to-date information I've found关于如何安装运行node-gyp所需的组件,而这又是编译canvas(和jsdom)代码所必需的。我将在这里复制它以防链接死亡。我已经在Win7 x64机器上测试了这些说明,并且它第一次工作。


在Windows XP / Vista / 7上,node-gyp requires Python 2.7 and Visual Studio 2010

根据Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1中的自述文件,确保您的系统具有受支持的配置,请卸载以下产品,然后按照列出的顺序重新安装

  1. Visual Studio 2010
  2. Windows SDK 7.1注意:如果您在安装时遇到错误,也许this link 会对您有所帮助。
  3. Visual Studio 2010 SP1
  4. Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1
  5. 在x64环境中,列表中的最后一次更新修复了有关缺少编译器的错误以及error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.

相关问题