【发布时间】:2012-04-08 05:36:16
【问题描述】:
我喜欢 snap 框架,但我讨厌在我想尝试的每次迭代(微小的代码更改)中运行“cabal install”。
是否有快速迭代的替代方案?
【问题讨论】:
-
这里的“迭代”和“迭代”是什么意思?你的意思是“升级”吗?
标签: haskell haskell-snap-framework
我喜欢 snap 框架,但我讨厌在我想尝试的每次迭代(微小的代码更改)中运行“cabal install”。
是否有快速迭代的替代方案?
【问题讨论】:
标签: haskell haskell-snap-framework
Yesod 提供yesod devel 自动重新加载代码更改。我不知道 snap 中有类似的功能,但他们很可能可以重用大部分执行此操作的 Yesod 代码。
鉴于Snap.Loader.Devel 的存在,我猜他们可能已经提供了您所要求的东西,但我找不到有关如何使用它的文档。 FAQ 问题How do I run my app in development mode 仍然需要cabal install;从文档中不清楚您是否只需要这样做一次,或者每次代码更改时都需要这样做。
【讨论】:
开始
cabal install --reinstall -fhint snap
然后,对于您的项目:
cabal clean
cabal configure -fdevelopment
cabal build
./dist/build/projname/projname
无论如何,您都不应该将cabal install 用于您不希望能够从任意位置执行的二进制文件。你应该使用cabal build 来处理你只想在本地运行的东西。
当您更改 Main.hs 或项目的 .cabal 文件时,您需要运行 cabal build 并重新启动程序。
如果您有任何其他问题,请发表评论 - 我是实现此功能的人 快拍。
【讨论】:
curl http://127.0.0.1:8000/admin/reload 之类的内容手动重新加载应用程序。即使您没有使用开发模式构建应用程序,这也是可用的。有关最近的讨论,请参阅 groups.google.com/forum/?fromgroups#!topic/snap_framework/…。
-fhint 重新安装 snap