Nodejs Electron App 依赖 ImageMagick 和 FFmpeg 有什么办法打包?
Nodejs Electron App 依赖 ImageMagick 和 FFmpeg 有什么办法打包?
null
可执行文件打包到一起,新开个子进程能搞吧。
加个设置,由用户指定程序路径。
毕竟跨平台的话 你不能把各个平台下的都打包进去
写个检测的小程序,用户下了以后再检测下载。最后都满足条件了再启动 app 。
楼上是个好方法,毕竟这两个依赖每个平台都有二三十 M 。
进展:
Electron 好像内置 FFmpeg ,但是不知道是什么版本。
依赖 ImageMagick 的地方可以用 Sharp.js 重构掉。
有个 ffmpeg-static 的 npm 包
我最近在做的项目也要用到 ffmpeg
我是参考这个项目
https://github.com/wulkano/kap
一款录屏应用, 用 electron 和 ffmpeg 做的
楼主解决了吗?同需要。
#8 就是打包个 binary 进安装包,运行时检查 binary 是否存在,如果没有就解压这样
在将Node.js Electron应用打包时,如果应用依赖于ImageMagick和FFmpeg,可以使用electron-builder
或electron-packager
等工具,并结合一些脚本来确保这些依赖被正确包含。以下是一个使用electron-builder
的示例,它利用extraResources
和postInstall
脚本来处理依赖。
首先,确保你的package.json
中包含了electron-builder
的依赖:
"devDependencies": {
"electron": "^latest",
"electron-builder": "^latest"
}
然后,配置build
部分,指定extraResources
来包含ImageMagick和FFmpeg的二进制文件,并在postInstall
脚本中配置环境变量:
"build": {
"extraResources": [
{
"from": "path/to/imagemagick",
"to": "imagemagick",
"filter": ["**/*"]
},
{
"from": "path/to/ffmpeg",
"to": "ffmpeg",
"filter": ["**/*"]
}
],
"postInstall": "node scripts/setup-dependencies.js"
}
在scripts/setup-dependencies.js
中,可以设置环境变量或执行其他必要的配置步骤,比如将ImageMagick和FFmpeg的路径添加到系统的PATH
中:
process.env.PATH = `${__dirname}/../dist/your-app-name-win32-x64/resources/app/imagemagick:${__dirname}/../dist/your-app-name-win32-x64/resources/app/ffmpeg:${process.env.PATH}`;
这样,在打包后的应用中,ImageMagick和FFmpeg将被正确包含,并可通过环境变量访问。记得根据实际的文件路径和操作系统调整脚本。