Я иногда выполняю заказы на мелкие программы.
Например — задача скачать кучу картинок по адресам из Excel файла.
Это очень легко и быстро реализуется на Node.js в виде консольного приложения. Можно за час или пару часов успеть написать с нуля и протестировать.
Доставка утилиты заказчику
Проблема только в том, как эту утилиту доставить заказчику.
Движок Node.js это интерпретатор, он не компилирует исходники в исполняемый код.
Так запускается консольное приложение Node.js:
node app.js
Получается, что предоставляя свою утилиту клиенту, потребуется:
-
Установить ему Node.js
-
Написать инструкцию как запускать терминал, а потом какую команду вводить в терминале.
Это всё долго и мучительно. Я искал, как упростить процесс и запаковать утилитку в единый исполняемый файл.
Pkg
И вот наконец нашёл )
Это сборщик приложений Node.js.
Пакует всё в исполняемый файл и делает билд под три системы: Linux, MacOS, Windows.
Инструкция
-
Устанавливаем пакет сборщика глобально:
npm install -g pkg
-
Прописываем секцию “bin” в
package.json
:"bin": { "app" : "app.js" },
-
Прописываем секцию “pkg” в
package.json
, добавляем необходимые настройки (см. документацию):"pkg": { "assets": "credentials.json", "targets": [ "node14-win-x64" ], "outputPath": "dist" }
-
Запускаем сборку:
pkg --compress GZip .
Проверил, работает )
Теперь будет достаточно отправить заказчику один файл. Запустить утилиту можно будет как любое приложение, просто щелчком мышки.