【问题标题】:Elm "cannot find module"榆树“找不到模块”
【发布时间】: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 文件的使用。

elm-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"
}

这是我的文件树的屏幕截图。

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

我该如何解决这个问题 - 嗯,很简单? - 问题。 还是我的elm-package.json 配置错误?

【问题讨论】:

    标签: elm


    【解决方案1】:

    Elm 0.17 更新

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

    elm package install elm-lang/html
    

    您还应该从 elm-package.json 中删除 evancz/elm-html 包,因为它从 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 包。侧边栏有一个热门软件包部分,其中包含此处提到的 evancz/elm-html 软件包。

    【讨论】:

    • 啊,你抢我的答案。我觉得你的稍微好一点。你能在 package.elm-lang.org 的侧边栏中添加我对流行包的提及吗?然后我的答案将过时,我可以将其删除。
    • 好点,@Apanatshka。我已经添加了流行包的链接和提及。谢谢!
    • 啊哈。我认为 Html 是核心的一部分。奇怪的是我还没有找到那个链接。它隐藏在“社区包”here 后面,我将其解读为像插件一样的“自定义包”...... HTML 不是核心的一部分在this tutorial 或示例中没有提到(它使用在线编辑器)虽然。
    • @KarelG 从 Elm 0.17 开始,它现在是核心的一部分。 =)
    • 我已经用 0.17 信息更新了答案。感谢您的提醒,@therealmarv
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多