如何在 Electron 应用程序中安装和捆绑 GraphicsMagick?

How do you install and bundle GraphicsMagick in an Electron app?

我正在构建一个电子应用程序,我需要 GraphicsMagick。文档建议您必须先下载并安装程序本身,然后才能将其与 node.js 一起使用。所以仅仅安装 npm 包是不够的。

那我该怎么做呢?我真的必须让我的 Electron 应用程序下载二进制文件(或将其与二进制文件捆绑在一起),然后在第一次启动应用程序时安装该程序才能使用它吗?

它甚至不支持像 ffmpeg 这样的 CLI 命令,所以我不能只捆绑二进制文件并执行像 gm.exe convert test.jpg

这样的命令

我会说是的,如果您不想通过软件包存储库分发您的应用程序或要求您的用户预先安装 GraphicsMagick,则必须将二进制文件与您的应用程序捆绑在一起。

它确实支持 gm.exe convert test.jpg 这样的 CLI 命令。如果你使用 electron-builder 打包,你必须添加一个配置来防止二进制文件被 asar-packed:

  "build": {
    "asarUnpack": [
      "path/to/your/GraphicsMagick/binary/**"
    ],

从电子你可以调用程序,例如

const child_process = require('child_process')
child_process.execFile('relative/path/to/your/gm.exe', ['version'], 
 (error, stdout, stderr) => { 
   console.log(stdout) 
 } )

您可以下载 windows 二进制文件,例如来自 sourceforge host。安装这些二进制文件后,您必须将安装的文件夹复制到您的应用程序。