Аргументы командной строки в ElectronJS

Опубликовано: 1 Августа, 2021

ElectronJS - это платформа с открытым исходным кодом, используемая для создания кроссплатформенных нативных настольных приложений с использованием веб-технологий, таких как HTML, CSS и JavaScript, которые могут работать в операционных системах Windows , macOS и Linux. Он объединяет движок Chromium и NodeJS в единую среду выполнения.

Аргументы командной строки - это параметры, которые передаются программе при ее вызове. В разных языках программирования и фреймворках используются разные методы для анализа этих аргументов. Аргументы командной строки важны, поскольку их можно использовать для управления поведением приложения. Эти аргументы передаются основной функции любого приложения. Electron также поддерживает аргументы командной строки. Мы можем передать аргументы командной строки в Electron извне приложения при его вызове или мы можем просто жестко закодировать эти значения, используя методы экземпляра встроенного свойства CommandLine приложения Module of Electron. В этом руководстве будет показано, как добавить аргументы командной строки в Electron.

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

  • Структура проекта:

Аргументы командной строки в Electron Модуль приложения и свойство CommandLine являются частью основного процесса . Нам нужно добавить аргументы командной строки в основной процесс приложения до того, как будет сгенерировано событие готовности модуля приложения. В Electron свойство CommandLine используется для чтения и управления аргументами командной строки, которые Chromium читает и использует. Их можно использовать для управления и переопределения поведения Chromium по умолчанию. Для получения подробного списка поддерживаемых флагов и переключателей командной строки, которые можно использовать в Electron. Мы также будем использовать некоторые из этих флагов и переключателей для демонстрации. Свойство CommandLine поддерживает только методы экземпляра. С ним не связаны никакие события и свойства Intance.

Пример: Следуйте инструкциям по передаче аргументов командной строки в Electron.

  • Шаг 1. Следуйте инструкциям в разделе Перетаскивание файлов в ElectronJS, чтобы настроить базовое приложение Electron. Скопируйте код Boilerplate для файлов main.js и index.html, как указано в статье. Также внесите необходимые изменения, упомянутые в файле package.json, чтобы запустить приложение Electron. Мы продолжим создавать наше приложение, используя ту же кодовую базу.
    package.json:
 {
  "имя": "электрон-команда",
  "версия": "1.0.0",
  "description": "Переключатели командной строки в электронном",
  "main": "main.js",
  "scripts": {
    "старт": "электрон".
  },
  "ключевые слова": [
    "электрон"
  ],
  «автор»: «Радхеш Ханна»,
  "лицензия": "ISC",
  "dependencies": {
    "электрон": "^ 8.3.0"
  }
}
  • Создайте папку с активами в соответствии со структурой проекта. Мы будем использовать эту папку для хранения журналов .
    Вывод: На этом этапе настроено наше основное электронное приложение. После запуска приложения мы должны увидеть следующий результат.

  • Шаг 2: Теперь мы передадим аргументы командной строки приложению Electron, используя любой из двух подходов.

    • Подход 1. Передача аргументов командной строки при запуске приложения. Мы будем использовать ключ командной строки –log-net-log = path. Этот переключатель позволяет записывать события сетевого журнала и записывать созданные журналы в файл пути. Мы уже внесли необходимые изменения в файл package.json для запуска приложения с помощью стартового скрипта. Мы изменим этот сценарий, чтобы передать этот переключатель командной строки.

      package.json: измените следующий фрагмент в этом файле.

     "scripts": {
        "начало": "электрон. --log-net-log = assets / log.txt"
      },
    
    • Вывод: после запуска приложения Chromium включит сетевое ведение журнала, и в папке с ресурсами будет автоматически сгенерирован файл log.txt с начальными записями сетевого журнала.

    • Подход 2: передача аргументов командной строки с использованием свойства CommandLine модуля приложения.
      main.js Добавьте следующий фрагмент в начало файла сразу после импорта модуля приложения и до того, как будет сгенерировано событие готовности.

javascript




const { app, BrowserWindow } = require( "electron" );
app.commandLine.appendSwitch( "log-net-log" , "assets/log.txt" );
console.log(app.commandLine.hasSwitch( "log-net-log" ));
console.log(app.commandLine.getSwitchValue( "log-net-log" ));

Подробное объяснение всех методов экземпляра свойства CommandLine, используемых в коде, объясняется ниже. Для получения более подробной информации о свойстве CommandLine.

  • commandLine.appendSwitch (switch, value) Этот метод добавляет Switch с необязательным параметром value в командную строку Chromium при вызове приложения. Этот метод не имеет возвращаемого типа. Он принимает следующие параметры. В нашем коде мы использовали этот метод экземпляра, чтобы добавить параметр командной строки –log-net-log = path.
    • switch: String Переключатель командной строки без начала - для добавления в командную строку Chromium при вызове приложения. Это значение не может быть пустым.
    • value: String (Необязательно) Строковое значение для данного Switch, если он поддерживает какой-либо. В случае, если Switch принимает логическое значение, мы заключим логическое значение в String, чтобы оно было передано через этот метод. В нашем коде мы указали путь к папке с ресурсами. По умолчанию это будет CWD (Текущий рабочий каталог).
  • commandLine.hasSwitch (switch) Этот метод используется для проверки наличия переключателя командной строки при вызове приложения извне, например, в стартовом скрипте в файле package.json, или был добавлен с помощью метода commandLine.appendSwitch () . Он возвращает логическое значение, указывающее, присутствует ли переключатель командной строки. Он принимает следующие параметры.
    • switch: String Переключатель командной строки без начала - для проверки командной строки Chromium. Это значение не может быть пустым.
  • commandLine.getSwitchValue (switch) Этот метод используется для возврата значения переключателя командной строки, если таковое имеется. Он возвращает строковое значение. Если переключатель командной строки отсутствует или значение отсутствует, он вернет пустую строку. Он принимает следующие параметры.
    • switch: String Переключатель командной строки без начала - для проверки командной строки Chromium. Это значение не может быть пустым.
  • commandLine.appendArgument (argument) Этот метод используется для добавления аргумента в командную строку Chromium при вызове приложения. Аргумент будет соответствующим образом процитирован приложением. Этот метод не имеет возвращаемого типа. Этот метод аналогичен методу commandLine.appendSwitch (), но переключатели командной строки всегда будут предшествовать аргументам независимо от порядка добавления. Если мы хотим добавить переключатель командной строки в качестве всего аргумента, например, «–log-net-log = assets / log.txt», то мы не должны использовать этот метод. Вместо этого мы должны использовать метод commandLine.appendSwitch (). Он принимает следующие параметры.
    • аргумент: String Аргумент String, добавляемый в командную строку Chromium. Это значение не может быть пустым.