Могу ли я использовать mix для глобальной установки некоторых пакетов? Я бы хотел, чтобы поведение было похоже на глобальную опцию npm
или установку gem
— это может быть полезно для пакетов, которые я использую везде, таких как csv
или yaml
.
В эликсире, как мне установить пакеты глобально?
Ответы (3)
В Эликсире такого нет, вы всегда используете зависимости в контексте проекта. Такие решения, как архивы или эскрипты, предназначены для решения конкретных проблем, они не позволяют обмениваться пакетами между проектами.
Однако не нужно беспокоиться о совместном использовании часто используемых пакетов. Hex, менеджер пакетов, уже кэширует их и позаботится об их обработке за вас.
Некоторые пакеты предоставляют файл архива, который можно установить глобально.
http://elixir-lang.org/docs/v1.1/mix/Mix.Tasks.Archive.Install.html
Например Феникс:
mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez
Это позволяет получить глобальный доступ к задаче mix phoenix.new
. Тем не менее, нет ничего конкретного для разрешения установки библиотек, доступных во всех ваших смешанных проектах.
mix archive.install hex phx_new
. Чтобы просмотреть все ваши глобальные архивы и их версии, вы можете использовать: mix archive
.
- person zenw0lf; 18.02.2020
Для сценариев Elixir вы можете виртуально установить глобальные пакеты, используя erun
. Скомпилировав erun
со своими зависимостями, вы можете запустить
$ erun foo.exs
(erun
— это просто эпиграф.)
https://github.com/s417-lama/erun