Стек: «hdevtools - это зависимость от библиотеки, но пакет не предоставляет библиотеки, поскольку my-app является целью сборки». - PullRequest
0 голосов
/ 29 октября 2018

Я пытался добавить hdevtools в мой проект стека, поэтому я запустил stack build hdevtools. Казалось, что установка прошла успешно, и мой текстовый редактор прекратил сообщать об отсутствующих импортированных библиотеках, установленных через стек (например, aeson и tasty).

Однако, когда я добавил эту строку в раздел dependencies моего package.yaml файла, все пошло не так:

- hdevtools >= 0.1 && < 1

А затем попытался запустить stack build снова. Я получил следующую ошибку:

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for my-app-name-0.1.0.0:
    hdevtools is a library dependency, but the package provides no library
needed since my-app-name is a build target.

Some different approaches to resolving this:

  * Consider trying 'stack solver', which uses the cabal-install solver to attempt
    to find some working build configuration. This can be convenient when dealing
    with many complicated constraint errors, but results may be unpredictable.


Plan construction failed.

Я попытался запустить stack solver, но это бросило исключение, задокументированное здесь .

Как я могу объявить hdevtools зависимостью моего проекта?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

@ alexis-king рекомендует использовать stack build --copy-compiler-tool hdevtools в в этом руководстве , в разделе под названием Настройка интеграции с редактором .

Это работает для текущего проекта и других проектов, использующих ту же версию GHC, но вам нужно будет запустить его снова при обновлении до новой версии GHC.

Больше контекста из руководства Кинга:

Как уже упоминалось выше, установка в стек - это не то, что вам нужно. Такие инструменты, как ghc-mod, hlint, hoogle, weeder и intero, лучше всего работают, когда установлены как часть песочницы, а не глобально, поскольку это гарантирует, что они будут соответствовать текущей версии GHC, используемой вашим проектом.

0 голосов
/ 29 октября 2018

Как я могу объявить hdevtools зависимостью моего проекта?

hdevtool - исполняемый файл, и у cabal нет концепции зависимостей разработки (как в других менеджерах пакетов, таких как npm и т. Д.). Итак, все, что вы можете сделать, это установить hdevtools глобально и заставить его работать.

...