榆树“找不到模块”

时间:2015-12-10 11:52:47

标签: elm

我是榆树的新人。看到一种允许你开发前端内容的函数式语言很有意思。现在,即使我很好地遵循here描述的步骤,我仍然遇到模块问题。

代码是

module Main where

import Html exposing ( Html )
import Signal

main : Signal Html.Html
main = Html.text "This should work."
       |> Signal.constant

我使用elm-reactor -a='localhost'来查看输出。但是我收到一个错误,找不到“HTML”模块:

I cannot find find module 'Html'.

Module 'Main' is trying to import it.

Potential problems could be:
  * Misspelled the module name
  * Need to add a source directory or new dependency to elm-package.json

(注意双“找”嘿嘿) 修复建议没有帮助我。或者可能是因为我无法正确理解.json文件的使用。

榆树的package.json:

{
    "version": "1.0.0",
    "summary": "testing elm",
    "license": "BSD3",
    "source-directories": [
        ".",
        "./bin/"
    ],
    "exposed-modules": [],
    "dependencies": {
        "elm-lang/core": "3.0.0 <= v < 4.0.0"
    },
    "elm-version": "0.16.0 <= v < 0.17.0"
}

以下是我的文件树的屏幕截图。

elm file tree

也许它的行为与Haskell威胁模块的方式不同。

我该如何解决这个问题 - 呃简单吗? - 问题。 或者我的elm-package.json配置不正确?

1 个答案:

答案 0 :(得分:28)

更新Elm 0.17

在0.17中,Html包已移至elm-lang/html。从终端运行以下命令进行安装:

elm package install elm-lang/html

您还应该从evancz/elm-html中删除elm-package.json个包,因为它从0.17开始不再存在。

有关从0.16升级到0.17的更多信息,请参阅0.17 announcement

Elm 0.16的原始答案

您的elm-package.json个配置缺少evancz/elm-html个软件包,该软件包会公开Html。您可以使用elm的软件包管理器来安装依赖项,而不是直接编辑elm-package.json

在终端中输入以下内容:

elm package install evancz/elm-html

还会提示您安装evancz/elm-html所需的其他一些缺少的依赖项。运行此命令将更新elm-package.json文件,并从Internet下载缺少的软件包并将其安装在标准elm-stuff/packages目录中。

More info on the elm-package tool can be found here.

您可以在package.elm-lang.org在线浏览elm套餐。侧边栏有一个Popular Packages部分,其中包含此处提到的evancz/elm-html包。