当前位置: 首页 > 知识库问答 >
问题:

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

艾志尚
2023-03-14

我有一个简单的电子应用程序,我想在多个平台上运行。我从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上错误地启动这个电子应用程序。我是一个windows操作系统的人,不确定我是否走对了这条路。我想要的是将我的应用程序与electron捆绑,然后通过nodejs脚本启动特定于平台的二进制文件。我是不是应该试着发射导弹。应用程序文件?有没有更好的文件,我应该尝试在mac上启动?

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

我的回购协议在这里

共有1个答案

莘羽
2023-03-14

从命令行可以启动*。应用程序打开时类似:

打开 /usr/local/lib/node_modules/azure-devops-work-items-mac/dist/macazure-devops-work-items.app

如果要使用命令行开关,可以添加--args

/usr/local/lib/node_模块/azure devops工作项mac/dist/mac/azure devops工作项。app/Contents/MacOS/azure devops工作项”--repoPath=/Users/meeusen/appdev/.git/hooks--commitFile=${cFile}

 类似资料:
  • 启动Mac应用程序的AppleScript方法是: JavaScript for Automation(JXA)中的等效项是什么?

  • 我试图使用原子电子为Mac和Windows编写桌面应用程序。 我需要的是: 一个按钮。 当用户单击按钮时,它将运行以下shell(或python脚本): 结果将显示在文本区域中。 我试着使用[shelljs]和[yargs],但它似乎不适用于原子电子。 所有我想要的是使用JAVASCRIPT编写桌面应用程序(当然是GUI),调用一些脚本(shell 如有任何建议,将不胜感激,谢谢:)

  • 我们有一个电子加密应用程序,用于签署交易(以及其他事项)。 我们希望其他网站能够有一个按钮,打开电子应用程序,预先填写一些参数(交易信息)。 流量为: 用户点击使交易some-crypto-site.com 电子应用程序打开预填充参数 用户在电子应用中点击签署交易 电子应用程序在幕后做事情 电子应用程序关闭并向some-crypto-site.com发送消息 这可以在运行时或安装时完成。 调用与此

  • 在电子封装的应用程序中,我试图从node_modules依赖项执行服务器文件。从主要过程中,我正在尝试这样的东西: 当从本地命令行启动我的应用程序时,我看到服务器按预期启动,但当打包为asar时,服务器不会按预期启动。实现这一目标的正确方法是什么? 注: 我已经调查了https://electron.atom.io/docs/tutorial/application-packaging/#exec

  • 问题内容: 我正在编写一个使用node.js访问本地文件系统的桌面Web应用程序。我目前可以使用node.js打开文件并将其复制到硬盘驱动器上的不同位置。我还想做的是允许用户使用与文件类型关联的应用程序打开特定文件。换句话说,如果用户在Windows环境中选择“ myfile.doc”,它将使用该文件启动MSWord。 我一定是术语的受害者,因为除了与node.js进行通信的子进程的生成之外,我什

  • 问题内容: 我有一个程序和一个脚本,希望将其合并到我的Web应用程序中。 我想使用它们来解析上传到我的网站的文件;处理过程可能需要几秒钟,因此我也避免阻止该应用程序。 我如何才能只接受文件,然后仅在控制器的子过程中运行程序和脚本? 问题答案: 参见child_process。这是一个使用的示例,它允许您在输出数据时写入stdin并从stderr / stdout中读取。如果您不需要写stdin并且