首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在mac上从node.js脚本启动电子应用程序?

如何在mac上从node.js脚本启动电子应用程序?
EN

Stack Overflow用户
提问于 2020-05-28 10:10:33
回答 1查看 438关注 0票数 0

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

代码语言:javascript
运行
复制
#!/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钩子脚本(它不起作用)。

代码语言:javascript
运行
复制
#!/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钩子运行时,会出现以下错误消息:

代码语言:javascript
运行
复制
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上启动这个电子应用程序是错误的。我是个喜欢windows的人,我不确定我这样做的方式是否正确。我想要的是将我的应用程序与电子捆绑在一起,然后通过nodejs脚本启动平台特定的二进制文件。我应该尝试启动.app文件吗?有没有更好的文件,我应该尝试在mac上启动?

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

我的回购是here

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 17:40:55

在命令行中,您可以使用open启动*.app,如下所示:

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

如果你想使用命令行开关,你可以添加一个--args <actual arguments>,但是它不会在cli中打印任何东西。由于您的脚本可能依赖于此,因此在.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}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62055842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档