Как работать с одним файлом, используя стек? - PullRequest
3 голосов
/ 09 апреля 2019

Когда я работаю с одиночным файлом с кодом haskell, без проекта я могу зависеть только от пакета base и импортировать его модули, но когда я хочу импортировать модули из других пакетов, мне нужно создать новый проект и отредактируйте его package.yaml и добавьте элементы в dependencies, эти работы слишком тяжелы для одного файла.

Могу ли я поместить свой список наиболее часто используемых dependencies куда-нибудь, чтобы при загрузке одного файла через stack exec -- ghci my-file.hs он правильно находил мои импортированные модули?

1 Ответ

2 голосов
/ 10 апреля 2019

Есть несколько вариантов:

  • Флаг --package , для специальных вызовов;

  • Глобальный проект (см. Также этот ответ ), конфигурация по умолчанию, расположенная по адресу ~/.stack/global-project/stack.yaml (или соответствующий путь для вашей ОС), которая включается при работе вне реального проекта; и

  • Сценарии стека , что означает размещение заголовка, указывающего вызов стека поверх исходного файла, как в этом примере взято из документации ...

    #!/usr/bin/env stack
    {- stack
      script
      --resolver lts-6.25
      --package turtle
      --package "stm async"
      --package http-client,http-conduit
    -}
    

    ... и которые полезны, когда вы хотите что-нибудь переносимое.

...