Skip to content

Как добавить библиотеку

nonlux edited this page Nov 17, 2019 · 3 revisions

В проект

Если stack

При отсутствии библиотеки в завимостях проекта получим следующую ошибку:

> stack build              
Foo.hs:3:1: error:
    Could not find module ‘Network.HTTP’
    Use -v to see a list of the files searched for.
  |
3 | import Network.HTTP
  | ^^^^^^^^^^^^^^^^^^^

Имя пакета и версию можно найти в документации:

Добавляем зависимость в package.yaml в раздел dependencies:

# package.yaml
...
dependencies:
- HTTP

Можно гибко настраивать зависимости для различных целей сборки:

# package.yaml
...
# глобально для проекта
dependencies:
- HTTP 

# для папки src (библиотеки)
library:
  source-dirs: src
  dependencies:
  - HTTP

# для папки app (для сборки исполняемого файла)
executables:
  demo-exe:
    main:                Main.hs
    source-dirs:         app
    dependencies:
    - demo
    - HTTP


# для папки tests (для тестов)
tests:
  demo-test:
    main:                Spec.hs
    source-dirs:         test
    dependencies:
    - demo
    - HTTP

Если cabal

TODO

Если вы не знаете, stack или cabal

См. Файлы конфигурации проектов

В ghci

TODO