Команда shards
Crystal обычно поставляется вместе с Shards — менеджером зависимостей.
Он управляет зависимостями проектов и библиотек Crystal, обеспечивая воспроизводимую установку на разных компьютерах и системах.
Установка
Shards обычно распространяется вместе с Crystal. В качестве альтернативы для вашей системы может быть доступен отдельный пакет shards.
Чтобы установить из исходного кода, скачайте или клонируйте репозиторий и выполните make CRFLAGS=--release. Скомпилированный исполняемый файл находится в bin/shards и его следует добавить в PATH.
Использование
Для работы shards в папке проекта (рабочем каталоге) должен присутствовать файл shard.yml. В этом файле описан проект и перечислены зависимости, необходимые для его сборки. Файл со значениями по умолчанию можно создать, выполнив shards init. Содержимое файла описано в руководстве «Создание шарда», а подробное описание формата файла приведено в спецификации shard.yml.
Запуск shards install разрешает и устанавливает указанные зависимости. Установленные версии записываются в файл shard.lock, чтобы при повторном запуске shards install использовались те же версии зависимостей.
Если ваш шард собирает приложение, файлы shard.yml и shard.lock следует включить в систему контроля версий, чтобы обеспечить воспроизводимую установку зависимостей. Если это только библиотека, от которой зависят другие шарды, файл shard.lock не следует включать в систему контроля версий — только shard.yml. Рекомендуется добавить его в .gitignore (crystal init делает это автоматически при инициализации репозитория lib).
Команды Shards
shards [<options>...] [<command>]
Если команда не указана, по умолчанию будет выполнена install.
-
shards build: собирает исполняемый файл -
shards check: проверяет, установлены ли зависимости -
shards init: создаёт новыйshard.yml -
shards install: разрешает и устанавливает зависимости -
shards list: выводит список установленных зависимостей -
shards prune: удаляет неиспользуемые зависимости -
shards update: разрешает зависимости и обновляет их -
shards version: показывает версию шарда
Чтобы просмотреть доступные параметры конкретной команды, укажите --help после команды.
Общие параметры:
-
--version: выводит версиюshards. -
-h, --help: выводит краткую справку по использованию. -
--no-color: отключает цветной вывод. -
--production: запускает в режиме релиза. Зависимости для разработки не устанавливаются, устанавливаются только зафиксированные зависимости. Команды завершатся с ошибкой, если зависимости вshard.ymlиshard.lockне синхронизированы (используется командамиinstall,update,checkиlist). -
-q, --quiet: уменьшает подробность журналов, выводя только предупреждения и ошибки. -
-v, --verbose: увеличивает подробность журналов, выводя все отладочные сообщения.
shards build
shards build [<targets>] [<options>...]
Собирает указанные цели по пути bin. Если цели не указаны, собираются все. Эта команда проверяет, что все зависимости установлены, поэтому запускать shards install перед ней не требуется.
Все параметры, указанные после команды, передаются crystal build.
shards check
shards check
Проверяет, что все зависимости установлены и требования выполнены.
Код завершения:
-
0: зависимости удовлетворяют требованиям. -
1: зависимости не удовлетворяют требованиям.
shards init
shards init
Инициализирует папку шарда и создаёт файл shard.yml.
shards install
shards install
Разрешает зависимости и устанавливает их в папку lib. Если файл shard.lock ещё не существует, создаёт его на основе разрешённых зависимостей, фиксируя номера версий или коммиты Git.
Если файл shard.lock существует, команда считывает зафиксированные версии и коммиты и обеспечивает их использование. Команда install может завершиться с ошибкой, если зафиксированная версия не соответствует требованию, но может выполниться успешно, если добавлена новая зависимость и она не создаёт конфликта; в этом случае будет создан новый файл shard.lock.
shards list
shards list
Выводит список установленных зависимостей и их версий.
shards prune
shards prune
Удаляет неиспользуемые зависимости из папки lib.
shards update
shards update
Повторно разрешает все зависимости и обновляет их в папке lib независимо от зафиксированных версий и коммитов в файле shard.lock. В итоге создаётся новый файл shard.lock.
shards version
shards version [<path>]
Выводит версию шарда.
To the extent possible under law, the persons who contributed to this workhave waived
all copyright and related or neighboring rights to this workby associating CC0 with it.
https://crystal-lang.org/reference/1.2/the_shards_command/index.html