Статьи по NodeJs

Упаковка приложений Node в виде отдельного двоичного файла

Обычно распространение приложений, созданных с помощью Node, осуществляется путем пересылки исходного кода и конфигурационных файлов. Заставляя получателя устанавливать зависимости для запуска программы.

Этот метод имеет ряд преимуществ, например, возможность установки программы на разных системах.

Однако у него есть и недостатки, например, невозможность защитить разработанный код. Вот почему в некоторых случаях может быть полезно упаковывать приложения Node как отдельный двоичный файл. Этого можно добиться с помощью pkg.

Зачем упаковывать приложения Node?

Если обычный способ распространения программ Node – это исходный код, то в чём плюсы создания двоичного кода? Существует множество преимуществ. Одним из наиболее очевидных является возможность защиты исходного кода и любых учетных данных, но это также упрощает использование программ.

Упаковка приложений Node в виде двоичного файла с помощью pkg включает не только наш код, но и зависимости и время выполнения. Это позволяет избежать проблем совместимости при попытке запустить программу на другой версии Node. Таким образом можно избежать некоторых типичных проблем в процессе установки.

Упаковка базового приложения Node с помощью pkg

Чтобы создать приложение с помощью pkg, первое, что нам нужно сделать, это установить пакет.

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

npm install -g pkg

На macOS и Linux необходимо предварительно включить команду sudo.

Создание базового проекта

Теперь осталось только создать базовую программу для работы, для чего мы снова можем прибегнуть к командной строке.

mkdir test cd test npm init -y

Как только это будет сделано, мы можем создать простой файл index.js, в который мы включим сообщение. Например,

console.log('Двоичный файл, созданный с помощью pkg');
Code language: JavaScript (javascript)

Вы можете проверить, что он работает правильно, набрав в терминале следующую команду

node index

Компиляция проекта

Перед компиляцией проекта необходимо указать начальную точку программы с помощью опции bin в файле package.json. После main может быть помещена опция, указывающая на файл, созданный ранее.

После этого можно использовать команду pkg для создания пакетов, набрав в терминале следующую строку.

pkg .

Это позволит создать три версии программы: одну для Windows, одну для macOS и одну для Linux. Имя файлов будет представлять собой имя пакета, за которым следует дефис и название платформы.

Это произойдет независимо от операционной системы, на которой мы работаем.

Для запуска версии для macOS нам достаточно набрать в терминале

./test-macos

Кроме того, преимущество этих файлов в том, что они не требуют установки какого-либо другого программного обеспечения на целевом компьютере. Node даже не нужно устанавливать, поскольку нужная версия включена в исполняемый файл.

Переименование программы и компиляция для одной системы

Возможно, в большинстве случаев мы не хотим иметь все три версии программы, и ее название окажется неподходящим. Это можно решить с помощью некоторых опций.

Например, опция -t позволяет выбрать платформу, на которой компилируется проект, а -o позволяет задать имя выходного файла.

Итак, чтобы создать компиляцию с помощью node14 для macOS на процессорах Intel с именем sample, вы можете набрать в терминале

pkg -t node14-macos-x64 -o sample .

Это избавляет нас от создания версий, которые нам не нужны.

Заключение

В этой статье мы рассмотрели, как упаковывать приложения Node в виде отдельного двоичного файла благодаря pkg. Решение, с помощью которого мы можем избежать некоторых проблем, которые могут возникнуть при распространении приложений, разработанных поверх Node.

Потому что так мы можем быть уверены, что будет использована правильная версия Node.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *