Предотвращение включения смешанной задачи, когда ваш проект включен как смешанная
В библиотеке Elixir, которую я пишу, есть две пользовательские задачи микширования, одна из которых предназначена для пользователей, которые сделали мою библиотеку зависимой от своего проекта, а другая предназначена только для моего проекта.
Проблема здесь в том, что обе смешанные задачи доступны пользователям в их проектах после того, как они добавили мою в качестве dep.
Как мне это предотвратить? Я пытался избежать задачи в package: [ files: [ etc ] ]
в моем конфиге Mix, но он все еще был доступен в моем тестовом проекте, в котором моя библиотека указана как dep через git.
1 ответ
В настоящее время Mix не поддерживает идею частных задач напрямую. Пара вариантов:
Определите это в вашем
mix.exs
(например, как псевдоним) или создайте его внутриtasks/my_task.exs
а такжеCode.require_file "tasks/my_task.exs"
на вершине вашегоmix.exs
, Второй вариант не очень хорош, так как вы будете выполнять код, который определяет задачу для каждой команды mix, которую вы используете.Просто используйте скрипт. Создать
scripts
каталог, если вы хотите, а затем, когда вы хотите запустить его, просто выполните:mix run scripts/do_x.ex arg1 arg2 arg3