Собственный VPN клиент на JavaScript. 11 часть — Сборка приложения под Windows

в 9:41, , рубрики: css, desktop apps, DIY, electron js, ES6, html5, javascript, jsus, jsusdev, node.js, open source, openvpn, telegram, vpn, windows, информационная безопасность, разработка, разработка под windows, Роскомнадзор, сделай сам

P.S. Каждая часть — это часть, сама по себе смысла не имеет, чтобы обзавестись необходимым контекстом и не испытывать когнитивный диссонанс от отсутствия так необходимых блоков текста начните читать с 1 части

В этот раз собирать приложение я буду npm модулем electron-builder, отдельное спасибо разработчикам за удобную документацию к модулю и множество примеров настройки конфига (нет).

В прошлый раз я собирал приложение npm модулем electron-packager, насколько мне известно, он не может собирать в exe, во всяком случае на тот момент мне не удалось это сделать.

Cодержимое файла package.json.

1  {
2     "name": "JS.VPN-Client",
3     "version": "0.3.77",
4     "description": "VPN Client",
5     "main": "index.js",
6     "homepage": "https://github.com/JsusDev/JS.VPN-Client",
7     "build": {
8        "appId": "JS.VPN-Client",
9        "productName": "JS.VPN-Client",
10      "copyright": "JSus & Developments  2018",
11      "win": {
12         "target": "nsis",
13         "icon": "icon.ico",
14         "legalTrademarks": "JSus & Developments  2018",
15         "asar": false
16       }
17    },
18    "author": {
19       "name": "JSus & Developments",
20       "email": "jsusdev@yandex.ru"
21    },
22    "license": "ISC",
23    "dependencies": {
24       "child_process": "^1.0.2",
25       "fs": "^0.0.1-security",
26       "ipify": "^2.0.0",
27       "js-base64": "^2.4.9",
28       "request": "^2.88.0"
29    }
30 }

Разбор package.json

Строка Описание
2 Имя пакета (обязательно)
3 Версия пакета/приложения (обязательно)
4 Описание пакета/приложения
5 Точка входа в пакет
6 Домашняя страница пакета/приложения
7 Объект конфига для electron-builder
8 ApplicationUserModelId (AUMID) является комбинацией PackageFamilyName и PackageRelativeApplicationID (PRAID) — я не знаю что это
9 Название приложения (если не указать значение будет взято из name)
10 Авторские права
11 Платформа сборки (win, mac, linux) (обязательно)
12 Способ запаковки приложения (7z, zip, tar.xz, tar.lz, tar.gz, tar.bz2, dir, etc) (обязательно)
13 Иконка приложения (если не указать будет стандартная)
14 Товарные знаки
15 Способ внутреннего архивирования приложения нужно отключить потому что убирает файлы с расширением exe
18 Издатель, можно указать строкой
23 Зависимости, среди них не должно быть electron иначе будет ошибка

Для сборки самого приложения используется команда

electron-builder build

image

Спустя N минут…

image

В процессе сборки в корне проекта будет создана папка dist

image

После того как завершится сборка в папке можно будет найти файл для установки

image

image

Приложение готово к публикации!

Страница проекта на Github и Персональная страница приложения

Ну что, как тебе такое Илон Маск ?

Поки чмоки лавки лавки.

Собственный VPN клиент на JavaScript by JSus

Автор: Александр

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js