2015-12-10 63 views
22

我在榆樹裏相當新。看到一個功能語言讓你開發前端的東西很有趣。現在,即使我很好地遵循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配置不正確?

回答

27

更新榆樹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

爲榆樹0.16

原來的答覆你elm-package.json配置缺少evancz/elm-html包,它公開Html。您可以使用elm的包管理器來安裝依賴項,而不是直接編輯0​​。

從終端,鍵入以下命令:

elm package install evancz/elm-html 

您也將被提示安裝由evancz/elm-html需要其他一些缺少的依賴關係。運行此命令將更新您的elm-package.json文件,並從互聯網上下載缺失的軟件包,並將它們安裝在標準的elm-stuff/packages目錄中。

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

您可以在package.elm-lang.org網上瀏覽榆樹包。側邊欄有一個熱門軟件包部分,其中包含這裏提到的evancz/elm-html包。

+1

啊,你打我一個答案。我認爲你的稍好一些。你可以在package.elm-lang.org的邊欄中添加我提到的熱門軟件包嗎?那麼我的回答就會過時,我可以刪除它。 – Apanatshka

+0

好點,@Apanatshka。我已經添加了鏈接,並提到熱門軟件包。謝謝! –

+2

啊哈。我認爲Html是核心的一部分。奇怪的是,我還沒有找到那個鏈接。它隱藏在「社區包」[here](http://elm-lang.org/docs)後面,我把它看作像插件一樣的「自定義包」...... HTML不是核心的一部分,沒有但在[本教程](https://github.com/evancz/start-app)或示例中(它使用在線編輯器)中的某處提到過。 – KarelG