windows 安装 node-canvas

在Windows上部署某些npm包,需要本地编译,有的包环境依赖比较强,比如canvas,基本上在Windows上部署失败都是这个原因,今天带你一次性解决。

安装canvas需要python2.7环境,v3.x.x版本会造成系统报错。

构建node-canvas模块需要:

  1. node-gyp的全局安装。
  2. GTK 2
  3. 对于可选的JPEG支持(node-canvas 2.0和更高版本):libjpeg-turbo

1、Choco命令安装依赖环境

在以管理员权限打开 Power’Shell下,对于安装Windows软件,可使用choco命令安装。安装Node.js时勾选安装 choco ,安装完就可使用了。

PowerShell中输入:

choco install -y python2 gtk-runtime microsoft-build-tools libjpeg-turbo

自动安装python2.7,Vc++环境;如果本机未安装choco,可以手动安装。

微软VC++编译工具链也可以手动安装,下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community

选择VC++桌面开发组件安装即可。

没有choco 的话,可以用这个来安装:

npm i -g windows-build-tools 

国内环境python下载缓慢,经常中断,直接从官网下载python2.7,我用的是Python2.7.18,官网下载:https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi

安装时,要确保Python命令添加到系统路径里,程序安装默认路径为 C:\Python27 下。终端输入Python 可以看到成功运行命令。

2022-04-13_142916

安装过程会出现错误,主要是 libjpeg-turbo,不过不要紧,程序应该已经安装了,C盘目录下应该存在 libjpeg-turbo64 目录了。如果没有可以手动下载安装,下载地址:

https://sourceforge.net/projects/libjpeg-turbo/

选择后缀名为vc的程序。

libjpeg-turbo 可选,用于JPEG支持; node-canvas 2.0及更高版本。
下载适用于Visual C ++的最新libjpeg-turbo SDK(当前libjpeg-turbo-1.5.1-vc.exelibjpeg-turbo-1.5.1-vc64.exe),并安装到其默认位置(C:\libjpeg-turbo如果是32位或C:\libjpeg-turbo6464位)。

2022-04-13_134218

2、将GTK解压至C:\GTk目录下

您将需要捆绑在GTK中的cairo库。下载适用于Win32Win64的GTK 2软件包。解压缩到目录C:\GTK。下载地址:https://ftp.acc.umu.se/pub/GNOME/binaries/win64/gtk+/2.22/gtk±bundle_2.22.1-20101229_win64.zip

然后把路径 C:\GTK\bin 加入到系统路径里,缺少GTK会提示错误:

Warning: Missing input files:
C:\GTK\bin\libcairo-2.dll
C:\GTK\bin\zlib1.dll
C:\GTK\bin\libfreetype-6.dll
C:\GTK\bin\libpangocairo-1.0-0.dll
C:\GTK\bin\libfontconfig-1.dll
C:\GTK\bin\libexpat-1.dll
C:\GTK\bin\libpangowin32-1.0-0.dll
C:\GTK\bin\libintl-8.dll
C:\GTK\bin\libglib-2.0-0.dll
C:\GTK\bin\libgmodule-2.0-0.dll
C:\GTK\bin\libpangoft2-1.0-0.dll
C:\GTK\bin\libgobject-2.0-0.dll
C:\GTK\bin\libpango-1.0-0.dll
C:\GTK\bin\libpng14-14.dll
C:\GTK\bin\libgthread-2.0-0.dll
gyp info ok

注意:

  • GTK和Node.js都需要64位或32位编译成功。
  • 下载GTK 2,*而不是GTK 3*,它缺少所需的libpng。如果你得到链接器错误,你很可能选择了错误的包。
  • 如果您使用的位置不是C:\GTK,请将GTK_Root参数添加到npm installnode-gyp rebuild。例如:node-gyp rebuild --GTK_Root=C:\somewhere\GTK

3、安装canvas

以上环境配置好后,重新启动 PowerShell ,执行命令:

npm i -g canvas

此时,如果环境正确,编译会通过。如果出现错误,配置一下环境:

npm config set msvs_version 2019
npm config set python C:\\Python27

2022-04-13_134303

*注意:*我在使用最新版本 Node.js 16.14.2 始终没有编译成功,出现这个错误:

2022-04-13_230144

后来我下载了 Node.js 14.19.1 终于编译成功。下载地址:https://npmmirror.com/mirrors/node/v14.19.1/node-v14.19.1-x64.msi

添加程序执行路径到系统环境后,必须要重新打开 PowerShell ,否则当前环境不生效。

猜你喜欢

转载自blog.csdn.net/u010912615/article/details/124188812