2015-12-10 3 views
22

Я довольно новый в Вяз. Интересно видеть функциональный язык, который позволяет вам разрабатывать интерфейсы. Теперь, даже если я следую описанным ниже шагам here, у меня все еще есть проблемы с модулями.Elm «не можете найти модуль»

Код

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

Обновление для 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.

Оригинал ответа на Элм 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, а также вытащит недостающие пакеты из Интернета и установит их в стандартном каталоге 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

Aha. Я думал, что Html является частью ядра. Странно, что я еще не нашел эту ссылку. Он скрыт за «пакетами сообщества» [здесь] (http://elm-lang.org/docs), который я читаю как «пользовательские пакеты», например плагины ... Что HTML не является частью ядра, упоминается где-то в этом уроке (https://github.com/evancz/start-app) или в примерах (он использует онлайн-редактор). – KarelG

Смежные вопросы