Добавление сценария командной строки в пользовательскую среду при установке приложения с помощью electron-builder

#node.js #command-line #electron #electron-builder

#node.js #командная строка #electron #электронный конструктор #electron-builder

Вопрос:

В настоящее время я работаю над проектом с Electron 9.0.4 и Electron-Builder 22.8.0 и столкнулся с проблемой, которая не кажется слишком сложной, но в Интернете нет подходящего решения! (По крайней мере, я не смог его найти)

У меня есть моя основная программа, которая выполняет все задачи пользовательского интерфейса, и скрипт командной строки, который выполняет некоторую серверную часть. Причина, по которой у меня есть этот скрипт командной строки, заключается в том, что я могу запускать определенные части приложения, не открывая само окно. На моем компьютере все работает нормально. После запуска npm link мой скрипт CL добавляется в мои переменные среды, и я могу просто запустить его с консоли. Однако, когда я пытаюсь выполнить сборку с electron-builder , возникает проблема.

Если я использую свой Setup.exe на другом компьютере, сценарий командной строки просто не будет добавлен к переменным среды, и я не смог найти инструкции о том, как это сделать в electron , nodejs или electron-builder документации. То, что я нашел, было предложением по другому вопросу добавить npm -g install в качестве сценария после установки, но это также не имело никакого эффекта.

Кто-то еще предложил добавить npm link в качестве сценария после установки, но, во-первых, если я не ошибаюсь, эта функция не предназначена для производства, а во-вторых, она создала бесконечный цикл, поскольку npm link запускала сценарий после установки снова и снова.

Вот как скрипт добавляется в проект

 "bin": {
    "command-name": "/cl.js"
  }
  

Любая помощь приветствуется!

Ответ №1:

Поскольку я не мог найти прямого решения своей проблемы и не хотел искать какое-либо дальнейшее решение, имея возможность использовать другой подход.

Я решил сделать шаг назад и поискать другой способ решения моей проблемы Я пришел к выводу, что мне действительно не нужно добавлять скрипт в командную строку. Мое решение состояло в том, чтобы искать определенный аргумент при запуске обычного приложения.

 if (process.argv.includes("cli")) {  /* Do commandline stuff */ }
  

Когда пользовательский аргумент найден, я просто запускаю скрипт, который должен был быть запущен из командной строки. Используя этот подход, вы можете создать ярлык для моего исполняемого файла, который содержит пользовательский аргумент, а затем вместо приложения он запускает скрипт командной строки.