如何从 mac 上的 node.js 脚本启动电子应用程序?
How to launch electron app from a node.js script on mac?
我有一个简单的电子应用程序,我想在多个平台上 运行。我从 git 挂钩启动应用程序。我有多个平台特定的应用程序包发布到 npm。 windows 路径运行良好。这是我的 windows commit-msg 钩子脚本(运行 我的电子应用程序 .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 人,不确定我是否以正确的方式进行此操作。我想要的是将我的应用程序与电子捆绑在一起,然后通过 nodejs 脚本启动平台特定的二进制文件。我应该尝试启动 .app 文件吗?我应该尝试在 mac 上启动更好的文件吗?
我正在用 electron-builder -mwl
打包我的电子应用程序。
我的回购是 here
您可以从命令行开始 *.app
和 open
喜欢:
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}
我有一个简单的电子应用程序,我想在多个平台上 运行。我从 git 挂钩启动应用程序。我有多个平台特定的应用程序包发布到 npm。 windows 路径运行良好。这是我的 windows commit-msg 钩子脚本(运行 我的电子应用程序 .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 人,不确定我是否以正确的方式进行此操作。我想要的是将我的应用程序与电子捆绑在一起,然后通过 nodejs 脚本启动平台特定的二进制文件。我应该尝试启动 .app 文件吗?我应该尝试在 mac 上启动更好的文件吗?
我正在用 electron-builder -mwl
打包我的电子应用程序。
我的回购是 here
您可以从命令行开始 *.app
和 open
喜欢:
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}