Haskell 如何使用stack运行yesod hello world应用程序?

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

我使用以下命令创建了一个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 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 coding
stack 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 coding
stack 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
。”