繁体   English   中英

如何从 Mac 上的 node.js 脚本启动 electron 应用程序?

[英]How to launch electron app from a node.js script on mac?

我有一个简单的 electron 应用程序,我想在多个平台上运行。 我从 git 挂钩启动应用程序。 我有多个平台特定的应用程序包发布到 npm。 windows 路径运行良好。 这是我的 windows commit-msg 挂钩脚本(运行我的 electron apps.exe,效果很好):

#!/usr/bin/env node

var child_process = require('child_process');
const cFile = process.argv[2];

child_process.exec(`"C:\\users\\myuser\\nodejs\\node_modules\\azure-devops-work-items-win\\dist\\win\\azure-devops-work-items.exe" --repoPath=C:\\\\project\\.git\\hooks --commitFile=${cFile}`, (error, stdout, stderr) => {
    if (error !== null) {
        console.log(error);
        process.exit(1);
    }
});

在 Mac 上,我安装了这个 git 挂钩脚本(不起作用)。

#!/usr/bin/env node

var child_process = require('child_process');
const cFile = process.argv[2];

child_process.exec(`"/usr/local/lib/node_modules/azure-devops-work-items-mac/dist/mac/azure-devops-work-items.app" --repoPath=/Users/meeusen/appdev/.git/hooks --commitFile=${cFile}`, (error, stdout, stderr) => {
    if (error !== null) {
        console.log(error);
        process.exit(1);
    }
});

当 mac 钩子运行时,会出现以下错误消息:

MeeusenMacBookPro:appdev meeusen$ git commit . -m"."
Error: Command failed: "/usr/local/lib/node_modules/azure-devops-work-items-mac/dist/mac/azure-devops-work-items.app" --repoPath=/Users/meeusen/appdev/.git/hooks --commitFile=.git/COMMIT_EDITMSG
/bin/sh: /usr/local/lib/node_modules/azure-devops-work-items-mac/dist/mac/azure-devops-work-items.app: is a directory

    at ChildProcess.exithandler (child_process.js:303:12)
    at ChildProcess.emit (events.js:315:20)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:443:11)
    at Socket.emit (events.js:315:20)
    at Pipe.<anonymous> (net.js:674:12) {
  killed: false,
  code: 126,
  signal: null,
  cmd: '"/usr/local/lib/node_modules/azure-devops-work-items-mac/dist/mac/azure-devops-work-items.app" --repoPath=/Users/meeusen/appdev/.git/hooks --commitFile=.git/COMMIT_EDITMSG'
}

看起来我可能试图在 Mac 上错误地启动这个 electron 应用程序。 我是一个 windows 的人,我不确定我是否以正确的方式解决这个问题。 我想要的是将我的应用程序与 electron 捆绑在一起,然后通过 nodejs 脚本启动平台特定的二进制文件。 我应该尝试启动.app 文件吗? 有没有更好的文件我应该尝试在 mac 上启动?

我正在使用electron-builder -mwl打包我的 electron 应用程序。

我的回购在这里

从命令行,您可以使用open Like 启动*.app

open /usr/local/lib/node_modules/azure-devops-work-items-mac/dist/mac/azure-devops-work-items.app

如果要使用命令行开关,可以添加--args <actual arguments>但它不会在 cli 中打印任何内容。 由于您的脚本可能依赖于它,因此在 inside.app 中有一个文件可以运行,它的行为更像 unix 命令。 最有可能在您的脚本中看起来像:

/usr/local/lib/node_modules/azure-devops-work-items-mac/dist/mac/azure-devops-work-items.app/Contents/MacOS/azure-devops-work-items" --repoPath=/Users/meeusen/appdev/.git/hooks --commitFile=${cFile}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM