Nodejs Electron App 依赖 ImageMagick 和 FFmpeg 有什么办法打包?

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

Nodejs Electron App 依赖 ImageMagick 和 FFmpeg 有什么办法打包?
null

10 回复

可执行文件打包到一起,新开个子进程能搞吧。


加个设置,由用户指定程序路径。

毕竟跨平台的话 你不能把各个平台下的都打包进去

写个检测的小程序,用户下了以后再检测下载。最后都满足条件了再启动 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-builderelectron-packager等工具,并结合一些脚本来确保这些依赖被正确包含。以下是一个使用electron-builder的示例,它利用extraResourcespostInstall脚本来处理依赖。

首先,确保你的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将被正确包含,并可通过环境变量访问。记得根据实际的文件路径和操作系统调整脚本。

回到顶部