Как запустить электронное приложение из скрипта node.js на ma c? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть простое электронное приложение, которое я хочу запустить на нескольких платформах. Запускаю приложение с крючка git. У меня есть несколько пакетов приложения c для платформы, опубликованных в 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);
    }
});

На ma c я устанавливаю этот сценарий git hook (который не работает) t work).

#!/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);
    }
});

Когда ловушка ma c запускает его, выдает следующее сообщение:

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'
}

Похоже, я пытался запустить это электронное приложение неправильно на ма c. Я тип windows и не уверен, правильно ли я поступаю. Я хочу связать свое приложение с электроном, а затем запустить двоичный файл c, указанный для платформы, с помощью сценария nodejs. Стоит ли мне пытаться запустить файл .app? Есть ли лучший файл, который я должен попытаться запустить на ma c?

Я упаковываю свое электронное приложение с помощью electron-builder -mwl.

Мое репо здесь

1 Ответ

2 голосов
/ 29 мая 2020

из командной строки вы можете начать *.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}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...