关于javascript:如何在Windows上安装Node js canvas

how to install node js canvas on windows

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

资料来源:
为Windows安装节点画布
LearnBoost /节点画布/ Wiki /安装--- Windows

  • 我已经安装了较旧的Python(2.7.5)并将其添加到PATH(并从PATH中删除Python 3.2。)
  • 我已检查是否已安装Microsoft Visual Studio 2010 Professional
  • 我已经从http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip下载了" All in one" GTK软件包,并将其解压缩到C: GTK 并将'C: GTK bin'添加到PATH

登录控制台(在cmd中运行npm install canvas之后):
日志中包含几个警告,我认为这些不是问题所在-大多是"从双精度转换为浮点型"之类的东西,并且有一个错误标记为红色:

1
2
3
4
5
6
init.cc
d:\pathToApp
ode_modules\canvas\src\PNG.h(5): fatal error C1083: Cannot
open include file: 'cairo.h': No such file or directory [d:\pathToApp

ode_modules\canvas\build\canvas.vcxproj]

在日志结尾处有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
odejs
ode_modules\
npm
ode_modules
ode-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\
odejs\
ode_modules\
pm\
ode_modu
les\
ode-gyp\\bin\
ode-gyp.js"
"rebuild"
gyp ERR! cwd d:\pathToApp
ode_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

此后,节点模块文件夹中没有任何内容(没有画布子目录,安装失败后将npm删除该子目录)。

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

我已经仔细阅读了在此发现的所有内容。如果您可以提供任何帮助,请这样做。


我已经设法使其在新的Windows 8计算机上运行,??因此我想分享一些对其他人有帮助的细节。

我在用:

  • Windows 8.1(64位)
  • Visual Studio 2013(更新2)
  • Python 2.7.8
  • Windows 64位版GTK(http://www.gtk.org/download/win64.php)
  • 节点0.10.28
  • 节点gyp 1.0.1

程序

确保路径中包含Python 2和GTK bin。

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

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

例如:

  • 第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个快速解决方案:

  • 创建另一个具有正常名称(无特殊字符)的用户a并从该帐户运行node-gyp configure build
  • 使用此快速修复(对我有用):https://github.com/TooTallNate/node-gyp/pull/366

希望这可以帮助。


尝试安装paperjs时遇到画布问题。

这对我有用。

我的细节

  • Windows 7 x64
  • 节点-v0.10.26-x64
  • GTK + 2.22 x64

GTK

确保您已阅读自述文件。这里有一些必要的说明,我第一次忽略了。例如:

Run: pkg-config --cflags gtk+-2.0

Run: gtk-demo and verify that it works

运行pkg-config让我知道我需要在PKG_CONFIG_PATH环境变量中包含\lib\pkgconfig

帆布

我以此为指导:
https://github.com/LearnBoost/node-canvas/wiki/Installation---Windows

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

npm install canvas始终会失败-并自行清理(很麻烦)-所以我从npm-cache抓取了缓存的版本:
%USERPROFILE%\AppData
oaming
pm-cache\canvas\1.1.3\package
。将此目录复制到项目的node_modules目录,并将其重命名为canvas。在命令行上输入新创建的canvas目录。

运行npm install nan

在成功运行node-gyp configure之前,您需要验证binding.gyp中的GTK路径

在第5行:

'GTK_Root%': 'C:/GTK', # Set the location of GTK all-in-one bundle

现在您可以尝试node-gyp configure。如果成功,那就太棒了!
现在您可以构建它:node-gyp build

那应该做。如果您要安装纸张,现在可以。万岁!

如果这不起作用,或者您要添加一些内容,请不要害羞!请发表评论,以便我们所有人都能受益。


经过长时间的艰苦努力,我设法使它在Windows上正常工作。我还有最后一些建议,您可以尝试将我列入清单。

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

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

然后运行node-gyp build。

祝你好运。


这是我发现的有关如何安装运行node-gyp所需的组件的最新信息,而这些信息反过来又需要编译canvas(和jsdom)的代码。如果链接消失,我将在这里复制它。我已经在Win7 x64机器上测试了这些说明,并且第一次起作用。

在Windows XP / Vista / 7上,node-gyp需要Python 2.7和Visual Studio 2010

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

  • Visual Studio 2010
  • Windows SDK 7.1注意:如果安装时出错,则此链接可能会为您提供帮助。
  • Visual Studio 2010 SP1
  • Windows SDK 7.1的Visual C ++ 2010 SP1编译器更新
  • 在x64环境上,列表中的最后更新修复了有关缺少编译器和error MSB4019: The imported project"C:\Microsoft.Cpp.Default.props" was not found.的错误。


    您将需要在GTK中捆绑的cairo库