Можно ли использовать mix для установки некоторых пакетов по всему миру? Я бы хотел, чтобы поведение, подобное npm
глобальному параметру или gem
install - могло бы быть полезно для пакетов, которые я использую везде, например csv
или yaml
.
В elixir, Как установить пакеты по всему миру?
Ответ 1
В Elixir нет такой вещи, вы всегда используете зависимости в контексте проекта. Решения, такие как архивы или сценарии, предназначены для решения конкретных проблем, они не позволяют совместное использование пакетов между проектами.
Однако нет необходимости беспокоиться о совместном использовании часто используемых пакетов. Hex, менеджер пакетов, уже кэширует их, и он позаботится о его обработке для вас.
Ответ 2
Некоторые пакеты предоставляют архивный файл, который вы можете установить глобально.
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
всему миру. Однако нет ничего конкретного, что позволяло бы устанавливать библиотеки, доступные во всех ваших смешанных проектах.
Ответ 3
Для сценариев Elixir вы можете виртуально устанавливать глобальные пакеты, используя erun
. erun
со своими зависимостями, вы можете запустить
$ erun foo.exs
(erun
это просто сценарий.)