как выполнить итерацию в фреймворке Snap без установки Cabal - PullRequest
4 голосов
/ 23 марта 2012

Мне нравится фреймворк Snap, но я ненавижу запускать 'cabal install' с каждой итерацией (незначительное изменение кода), которую я хочу попробовать.

Есть ли альтернатива для быстрой итерации?

Ответы [ 2 ]

9 голосов
/ 23 марта 2012

Начните с

cabal install --reinstall -fhint snap

Тогда для вашего проекта:

cabal clean
cabal configure -fdevelopment
cabal build
./dist/build/projname/projname

Вы никогда не должны использовать cabal install для двоичных файлов, которые вы не хотите выполнять в любом случае из произвольных мест. Вы должны использовать cabal build для вещей, которые вы хотите запускать только локально.

Вам нужно будет запустить cabal build и снова запустить программу при изменении Main.hs или файла .cabal вашего проекта.

Если у вас есть какие-либо дополнительные вопросы, прокомментируйте - я парень, который реализовал эту функцию для Привязать.

2 голосов
/ 23 марта 2012

Yesod предоставляет yesod devel, который автоматически перезагружает изменения кода.Я не знаю о сопоставимых возможностях в оснастке, но весьма вероятно, что они могут использовать большую часть кода Yesod, который делает это.

Учитывая существование Snap.Loader.Devel Я предполагаю, что они уже могут предоставить что-то вроде того, что вы просите, но я не могу найти документацию о том, как это использовать.Вопрос-ответ Как запустить приложение в режиме разработки все еще требует cabal install;из документов неясно, нужно ли вам делать это только один раз или каждый раз, когда код изменяется.

...