作为独立页面部署

Deploying as a standalone page

在开发过程中,我一直在使用 elm-reactor 来测试我的单页 Elm 应用程序。但是对于生产部署,我只想将编译器的输出作为静态文件存储在网络服务器上。

如何将 Elm 页面编译成一对独立的 HTML + Javascript 文件?

  1. 使用 elm-make 将您的 Elm 应用程序编译为 elm.js(针对定义 main 的模块)。
  2. 创建您自己的 HTML 文件,其中包含该脚本和执行 Elm.<Module-that-defines-main>.fullscreen()
  3. 的主体中的脚本

例子

App.elm

module App where

import Text
import Signal
import Graphics.Element (Element)

main : Signal Element
main = "Hello World!" |> Text.asText |> Signal.constant

elm-make App.elm(创建 elm.js

App.html

<!DOCTYPE html>
<html>
 <head>
  <script src="elm.js" type="text/javascript"></script>
 </head>
 <body>
  <script type="text/javascript">Elm.App.fullscreen()</script>
 </body>
</html>

github 项目页面上对 this ticket 的回答也很有帮助:

Finally, use this command to compile the file into a single, stand-alone HTML file.

$ elm make start-test.elm --output index.html