我喜欢 snap 框架,但我讨厌在我想尝试的每次迭代(微小的代码更改)中运行“cabal install”。
是否有快速迭代的替代方案?
我喜欢 snap 框架,但我讨厌在我想尝试的每次迭代(微小的代码更改)中运行“cabal install”。
是否有快速迭代的替代方案?
从...开始
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 文件时,您将需要再次运行并启动该程序。
如果您还有任何问题,请发表评论 - 我是为 Snap 实现此功能的人。
Yesod 提供了yesod devel
自动重新加载代码更改的功能。我不知道 snap 中有类似的功能,但他们很可能可以重用大部分执行此操作的 Yesod 代码。
鉴于Snap.Loader.Devel的存在,我猜他们可能已经提供了您所要求的东西,但我找不到有关如何使用它的文档。FAQ 问题How do I run my app in development mode仍然需要cabal install
; 从文档中不清楚您是否只需要这样做一次,或者每次代码更改时都需要这样做。