windows 安装 node-canvas
在Windows上部署某些npm包,需要本地编译,有的包环境依赖比较强,比如canvas,基本上在Windows上部署失败都是这个原因,今天带你一次性解决。
安装canvas需要python2.7环境,v3.x.x版本会造成系统报错。
构建node-canvas
模块需要:
node-gyp
的全局安装。- GTK 2
- 对于可选的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 可以看到成功运行命令。
安装过程会出现错误,主要是 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.exe
或libjpeg-turbo-1.5.1-vc64.exe
),并安装到其默认位置(C:\libjpeg-turbo
如果是32位或C:\libjpeg-turbo64
64位)。
2、将GTK解压至C:\GTk目录下
您将需要捆绑在GTK中的cairo库。下载适用于Win32或Win64的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 install
或node-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
*注意:*我在使用最新版本 Node.js 16.14.2 始终没有编译成功,出现这个错误:
后来我下载了 Node.js 14.19.1 终于编译成功。下载地址:https://npmmirror.com/mirrors/node/v14.19.1/node-v14.19.1-x64.msi
添加程序执行路径到系统环境后,必须要重新打开 PowerShell ,否则当前环境不生效。