Формат портативной упаковки Elixir или Hex?

#elixir

#elixir

Вопрос:

Существует ли какой-либо переносимый формат для кода elixir? Кроме очевидного tar.

Например, если бы я хотел предоставить один или несколько модулей клиенту или коллегам-разработчикам из другой команды (без использования github). Как бы я это сделал?

Ответ на некоторых других знакомых языках: Ruby — gem, Java — jar, Python — egg и т. Д.

Ответ №1:

Это зависит от того, что вы хотите предоставить.

Ниже я рассмотрю три варианта, все они доступны через наш инструмент сборки под названием Mix.

  • Исходные файлы Hex пакетов. Если вы хотите предоставить код для использования другими разработчиками в своих проектах, Hex — лучший вариант, потому что он также знает, как извлекать и разрешать зависимости. Позвоните, mix local.hex чтобы установить его, а затем mix local чтобы увидеть все доступные шестнадцатеричные задачи;

  • Escript позволяет объединить весь ваш проект (включая зависимости) в исполняемый файл, который можно вызвать из командной строки. Для работы escripts вам необходимо установить Erlang, однако вам не нужно устанавливать Elixir. Обратите внимание, что Escript не может использоваться в качестве зависимости другими проектами.

  • Архивы — это, по сути, tar скомпилированных артефактов, которые среда выполнения Erlang знает, как загружать. Архивы не содержат зависимостей, и в Elixir они используются только как плагины для инструмента сборки Mix. Например, приведенный выше Hex устанавливается в виде архива внутри Mix.

Комментарии:

1. Doe Hex развертывает целые приложения? Или это работает только с библиотеками?

2. Нет, Hex — это менеджер пакетов. Он упаковывает исходные тексты, а не скомпилированный код. Его нельзя использовать для развертывания. Ссылки были обновлены.