Haskell 如何使用stack运行yesod hello world应用程序?
我使用以下命令创建了一个yesod项目:Haskell 如何使用stack运行yesod hello world应用程序?,haskell,yesod,haskell-stack,Haskell,Yesod,Haskell Stack,我使用以下命令创建了一个yesod项目: stack new yeplay yesodweb/simple 我在app目录中添加了一个helloworld.hs文件。应用程序目录包含以下文件: ~/haskell/yeplay/app$ ls devel.hs DevelMain.hs helloworld.hs main.hs helloworld.hs文件包含以下内容: {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE Qu
stack new yeplay yesodweb/simple
我在app目录中添加了一个helloworld.hs
文件。应用程序目录包含以下文件:
~/haskell/yeplay/app$ ls
devel.hs DevelMain.hs helloworld.hs main.hs
helloworld.hs
文件包含以下内容:
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
import Yesod
data HelloWorld = HelloWorld
mkYesod "HelloWorld" [parseRoutes|
/ HomeR GET
|]
instance Yesod HelloWorld
getHomeR :: Handler Html
getHomeR = defaultLayout [whamlet|Hello World!|]
main :: IO ()
main = warp 3000 HelloWorld
然后,我尝试使用以下命令运行该文件:
runhaskell helloworld.hs
Command 'runhaskell' not found, but can be installed with:
sudo apt install ghc
如文档中所述
如何启动该应用程序?您是否已尝试过,如我上面所述?
runhaskell
与stack
不同。尝试运行stack build
(可能需要一段时间),然后执行stack exec--runhaskell helloworld.hs
@zero\u codingstack exec--command
在stack
的上下文中运行command
,其中包括Haskell库、命令等。所以我们只运行runhaskell helloworld.hs
,但是使用堆栈
。对于这类事情,我不会使用runhaskell
;我会使用stack exec yeplay
(当命令没有任何参数时,--
不是必需的),或者stack exec--yesod devel
(需要先运行stack build yesod bin
)。有关更多详细信息,请参阅。@zero\u编码看起来您读得不够深入,因为该链接上的下一句话是:“注意,如果您遵循快速入门指南并使用stack安装了yesod,那么您将没有runhaskell
,而需要运行stack runghc helloworld.hs
。”您尝试过吗,正如我上面所描述的?runhaskell
与stack
不同。尝试运行stack build
(可能需要一段时间),然后执行stack exec--runhaskell helloworld.hs
@zero\u codingstack exec--command
在stack
的上下文中运行command
,其中包括Haskell库、命令等。所以我们只运行runhaskell helloworld.hs
,但是使用堆栈
。对于这类事情,我不会使用runhaskell
;我会使用stack exec yeplay
(当命令没有任何参数时,--
不是必需的),或者stack exec--yesod devel
(需要先运行stack build yesod bin
)。有关详细信息,请参阅。@zero\u编码看起来您读得不够深入,因为该链接上的下一句话是:“注意,如果您按照《快速入门指南》安装了yesod和stack,那么您将没有runhaskell
,而需要运行stack runghc helloworld.hs
。”