我正在构建一个电子应用程序,我需要GraphicsMagick。该文档建议您必须先将程序本身下载并安装,然后再与node.js结合使用。因此,仅安装npm软件包是不够的。
那我该怎么办?我是否真的必须让我的Electron应用程序下载二进制文件(或将其与二进制文件捆绑在一起),然后在首次启动应用程序时安装该程序才能使用它?
它甚至不像ffmpeg那样支持CLI命令,因此我不能只捆绑二进制文件并执行if( !get_user_meta( get_current_user_id(), 'user_nationality', true ) ) {
$countries_obj = new WC_Countries();
$countries = $countries_obj->__get('countries');
$fields['billing']['user_nationality'] = array(
'type' => 'select',
'label' => __( 'Nationality', 'mangopay' ),
'options' => $countries,
'required' => true,
);
}
答案 0 :(得分:1)
我想说的是,如果您不想通过软件包存储库分发应用程序,或者不想让用户事先安装GraphicsMagick,则必须将二进制文件与应用程序捆绑在一起。
它确实支持CLI命令,例如gm.exe convert test.jpg
。如果您使用电子生成器进行包装,则必须添加配置以防止二进制文件被打包。
"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。安装这些二进制文件后,您必须将已安装的文件夹复制到您的应用程序中。