网站首页 > 技术文章 正文
在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-turbo6464位)。
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 ,否则当前环境不生效。
猜你喜欢
- 2024-09-29 Hexo历险记之二多系统安装Node(小人历险记森林深处电脑版免安装)
- 2024-09-29 Win7环境下成功安装Nodejs18.16.1
- 2024-09-29 个人云笔记系统搭建(针对window操作系统)
- 2024-09-29 Npm 安装提示 EUNSUPPORTEDPROTOCOL 错误
- 2024-09-29 一个优雅的将NodeJS项目打包成跨平台可执行文件的神器——pkg
- 2024-09-29 Skywalking的编译打包(skywalking java)
- 2024-09-29 Gatlab 10.4.6中挖矿病毒处理与升级过程记录
- 2024-09-29 json - server:mock接口工具使用(mock-server.js)
- 2024-09-29 用一次就会爱上的cli工具开发(cli 工具)
- 2024-09-29 搭建 sonarqube 代码质量扫描环境
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 527℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 492℃MySQL service启动脚本浅析(r12笔记第59天)
- 472℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 469℃启用MySQL查询缓存(mysql8.0查询缓存)
- 450℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 429℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 426℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)