Предотвращение включения смешанной задачи, когда ваш проект включен как смешанная

В библиотеке 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

Другие вопросы по тегам