#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 */ }
Когда пользовательский аргумент найден, я просто запускаю скрипт, который должен был быть запущен из командной строки. Используя этот подход, вы можете создать ярлык для моего исполняемого файла, который содержит пользовательский аргумент, а затем вместо приложения он запускает скрипт командной строки.