Выполнение команд в Electron.js: методы запуска команд в приложении Electron

Чтобы выполнить команду в Electron.js, вы можете использовать различные методы. Вот несколько подходов, которые вы можете рассмотреть:

  1. Модуль дочернего процесса: Electron использует Node.js, поэтому вы можете использовать встроенный модуль child_processдля выполнения команд. Этот модуль предоставляет такие функции, как exec(), execFile()и spawn()для запуска команд и получения их вывода.

Пример:

const { exec } = require('child_process');
exec('your-command', (error, stdout, stderr) => {
  if (error) {
    console.error(`Error: ${error.message}`);
    return;
  }
  console.log(`Command output: ${stdout}`);
});
  1. ShellJS: ShellJS — это переносимая реализация команд оболочки Unix для Node.js. Вы можете установить его как зависимость и использовать в своем приложении Electron для выполнения команд.

Пример:

const shell = require('shelljs');
const result = shell.exec('your-command');
console.log(`Command output: ${result.stdout}`);
  1. Связь IPC: Если вы хотите выполнять команды процесса рендеринга и взаимодействовать с основным процессом, вы можете использовать механизм межпроцессного взаимодействия Electron (IPC). Вы можете отправить сообщение от процесса рендеринга основному процессу, выполнить команду в основном процессе и отправить результат обратно.

Пример:
В процессе рендеринга:

const { ipcRenderer } = require('electron');
ipcRenderer.send('execute-command', 'your-command');
ipcRenderer.on('command-result', (event, result) => {
  console.log(`Command output: ${result}`);
});

В основном процессе:

const { ipcMain } = require('electron');
const { exec } = require('child_process');
ipcMain.on('execute-command', (event, command) => {
  exec(command, (error, stdout, stderr) => {
    if (error) {
      console.error(`Error: ${error.message}`);
      return;
    }
    event.reply('command-result', stdout);
  });
});