WedX - журнал о программировании и компьютерных науках

Создайте автономный .exe из электронного приложения с помощью электронного строителя

Я использую электрон v6.0.9 с электронным сборщиком v21.2.0. Вот конфигурация упаковки из моего package.json для производственной сборки.

"build": {
    "appId": "com.app.prototype",
    "productName": "Pluto",
    "copyright": "Copyright © 2018 Simon Inc.",
    "mac": {
      "target": [
        "zip"
      ]
    },
    "win": {
      "publisherName": "Simon Inc.",
      "target": [
        "nsis",
        "zip"
      ]
    },
    "linux": {
      "target": [
        "AppImage",
        "tar.gz"
      ]
    },
    "dmg": {
      "icon": "build/icon.icns"
    },
    "publish": {
      "provider": "generic",
      "url": "THE_RELEASE_URL_HERE",
      "channel": "latest",
      "publishAutoUpdate": true
    }
  },

Я настроил сценарий сборки как "pack": "electron-builder --dir -mwl", в script. Проблема в том, что когда я запускаю команду npm run pack, она упаковывает приложение для всей платформы, но для Windows нет единого установочного файла ни .exe, ни .msi. electron-builder строит кучу файлов для windows.

Я использую macOS High Sierra v10.13.6 (17G8030). Я также пробовал строить на системе Windows 10, но результат тот же. Здесь что-то неправильно сконфигурировано или требуется еще несколько шагов для создания единого установочного файла для Windows?


  • Где вы определили это с помощью метода, который вы используете для окна? означает его _1 _, _ 2_ или squirrel.windows 03.10.2019
  • посмотрите мой package.json выше. Я нацеливаюсь на nsis и zip 03.10.2019
  • ты в этом разбираешься? Я пробовал использовать electron-packager, и он просто создает папку с кучей файлов, включая exe. есть ли способ упаковать электронное приложение как обычную программу, при этом вы запускаете exe для установки приложения в системе и т. д.? 19.10.2019
  • @BugWhisperer Да, с использованием electron-builder и цели для nsis. Запустите electron-builder -p never --win, чтобы собрать установщик. подробности уточняйте в ответе 19.10.2019
  • сладкое спасибо НО ты забыл ссылку на ответ ?? 19.10.2019
  • также, можно ли создавать ярлыки на рабочем столе и т. д.? 19.10.2019
  • @BugWhisperer После установки сгенерированного .exe файла также будет создан ярлык на рабочем столе. 20.10.2019
  • я мог заставить работать только electron-packager. У меня были проблемы с использованием electron-builder, поэтому у меня есть последний вопрос: при использовании electron-builder для создания исполняемого файла .exe, если пользователь щелкает .exe, предлагает ли он пользователю выбрать, в какую папку его установить? 20.10.2019
  • Да, вы можете настроить для этого конструктор электронов. 20.10.2019
  • Как сделать так, чтобы пользователь мог выбрать папку для распаковки exe при установке? 21.10.2019
  • вы можете дать мне ссылку на некоторую информацию по этому поводу? 21.10.2019
  • @BugWhisperer все здесь electronic.build, если вы все равно ничего не можете найти. комментарий здесь, я постараюсь разместить здесь минимальный пример 21.10.2019
  • я нашел "nsis": { "oneClick": false }, но, хотя это создает всплывающее окно установки, оно не позволяет пользователю выбрать, какое окно? - НЕВЕРМИНД, справа внизу: D извините за спам сообщений 21.10.2019
  • неважно, мой друг, это было прямо внизу. (извините за спам сообщений) 21.10.2019
  • Если пользователь не опаздывает, выбирает место для установки, значит, он определенно установил его на данные приложения. Я проверил электронное приложение (VSCode), оно также устанавливается в AppData. 21.10.2019
  • попробуйте добавить "allowToChangeInstallationDirectory": true в nsis конфигурацию сборки 21.10.2019
  • это потому, что "allowToChangeInstallationDirectory" по умолчанию false. я должен сделать это правдой, я думаю 21.10.2019

Ответы:


1

Я понял, как создать автономный установщик из электронных источников, вместо того, чтобы иметь кучу файлов. На самом деле мы должны использовать electron-builder с -p. Вот конфигурация сборки в моем файле package.json.

"build": {
    "appId": "com.trinityinfosystem.accurate",
    "productName": "Accurate",
    "copyright": "Copyright © 2018 Trinity InfoSystem",
    "mac": {
      "target": [
        "zip"
      ],
      "publish": [
        "github"
      ]
    },
    "win": {
      "publisherName": "Trinity InfoSystem",
      "publish": [
        "github"
      ],
      "target": [
        "nsis"
      ]
    },
    "linux": {
      "target": [
        "AppImage",
        "tar.gz"
      ]
    },
    "dmg": {
      "icon": "build/icon.icns"
    },
    "publish": [
      {
        "provider": "github",
        "owner": "vkiranmaniya",
        "repo": "accurate",
        "vPrefixedTagName": true,
        "private": true,
        "releaseType": "draft"
      }
    ]
  }

затем я просто использовал electron-builder -p never --win, и он упаковал файл .exe в каталог project_root / dist. Вы можете использовать -p always, если используете auto-updator из electron-builder и хотите опубликовать черновик выпуска в репозитории github.

Если вы хотите переопределить расположение установки по умолчанию и позволить пользователю выбирать его, убедитесь, что вы настроили сборку nsis следующим образом:

"nsis": {
      "oneClick": false,
      "perMachine": false,
      "allowToChangeInstallationDirectory": true
},
19.10.2019
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: wedx@cp9.ru