Electron音视频播放器开发踩坑
Electron 音视频播放器开发踩坑
一. 环境
笔者环境配置如下
1 | Node.js==16.20.2 |
二. 踩坑一:better-sqlite3无法直接使用
因为开发时使用的node版本与使用的Electron内内置的node版本不一致,导致在运行时,控制台提示:
1 | Uncaught Error: The module '\\?\D:\code\player\node_modules\better-sqlite3\build\Release\better_sqlite3.node' |
解决方案
使用electron-rebuild工具将better-sqlite3 rebuild为与electron内内置node版本相匹配的版本
具体步骤
- 卸载掉存在的electron-rebuild和better-sqlite3
- 首先安装electron-rebuild,其后安装better-sqlite3,请注意该顺序非常重要
- 在package.json添加script[“rebuild”: “electron-rebuild -f -w better-sqlite3”]或直接运行electron-rebuild -f -w better-sqlite3
- 运行结束后即解决该问题
可能的报错
1. ‘openssl_fips’ is not defined while evaluating condition ‘openssl_fips != “”‘
前往~/.electron-gyp/12.2.3/include/node/common.gypi,将
1 | {'variables':{'built_with_electron': 1}} |
覆盖为
1 | {'variables':{'built_with_electron': 1, 'openssl_fips': ''}} |
2. Error: Could not find any Visual Studio installation to use
谷歌上解决方法很多,但是笔者使用过后没有作用,最后根据一篇github issue将node版本降级到16后,在管理员权限下安装windows-build-tools后解决
1 | npm install windows-build-tools -g |
该模块笔者是node版本降级到16才能安装,其他更高版本均报错
1 | Error: TypeError: 'process.env' only accepts a configurable whileinstall windows-build-tools |
三. 踩坑二:Windows下无法直接打包Linux软件
解决方案
使用electronuserland/builder docker容器进行打包
1 | docker pull electronuserland/builder |
随后在开启的容器bash内执行npm run build即可
可能的报错
1.npm run build时gyp http GET https://atom.io/download/electron/v4.2.12/node-v4.2.12-headers.tar.gz
报错:
该下载请求因为atom存储库已经停用,会被转到GitHub说明情况的一篇博文上
解决方法是
1 | npm install node-gyp -g |
随后即可解决该问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 企鹅的小站!