2015-12-10 18 views
22

Sono abbastanza nuovo in Elm. È interessante vedere un linguaggio funzionale che ti consente di sviluppare elementi di front-end. Ora, anche se sto seguendo i passaggi descritti here, ho ancora problemi con i moduli.Elm "non trova il modulo"

Il codice è

module Main where 

import Html exposing (Html) 
import Signal 

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

ho usato elm-reactor -a='localhost' per essere in grado di vedere la mia uscita. Ma io sono sempre un errore, quel modulo 'HTML' non può essere trovato:

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 

(notare la doppia "trovare" hehe) Il suggerimento correzione non mi ha aiutato. O potrebbe essere che non sto capendo l'uso del file .json correttamente.

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

Ecco uno screenshot del mio albero di file.

elm file tree

Forse si comporta in modo diverso da come Haskell sta minacciando i moduli.

Come posso risolvere questo - eh semplice? - problema. Oppure il mio elm-package.json è stato configurato in modo errato?

risposta

27

Aggiornamento per Elm 0,17

In 0,17, il pacchetto Html è stato spostato elm-lang/html. Eseguire il seguente comando dal terminale per installarlo:

elm package install elm-lang/html 

Si dovrebbe anche rimuovere il pacchetto da evancz/elm-htmlelm-package.json perché non esiste più come di 0,17.

Per ulteriori informazioni sull'aggiornamento da 0,16 a 0,17, vedere 0.17 announcement.

risposta originale per Elm 0,16

La configurazione elm-package.json manca il pacchetto evancz/elm-html, che espone Html. È possibile utilizzare il gestore di pacchetti di elm per installare le dipendenze piuttosto che modificare direttamente elm-package.json.

Dal terminale, digitare quanto segue:

elm package install evancz/elm-html 

Vi verrà anche richiesto di installare un paio di altre dipendenze mancanti richieste da evancz/elm-html. L'esecuzione di questo comando consente di aggiornare il file elm-package.json e di scaricare i pacchetti mancanti da Internet e di installarli nella directory standard elm-stuff/packages.

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

È possibile sfogliare i pacchetti di olmo in linea a package.elm-lang.org. La barra laterale ha una sezione Pacchetti popolari che contiene il pacchetto evancz/elm-html menzionato qui.

+1

ah, mi hai battuto per una risposta. Penso che il tuo sia leggermente migliore. Puoi aggiungere la mia menzione dei pacchetti popolari nella barra laterale di package.elm-lang.org? Quindi la mia risposta diventerà obsoleta e potrò rimuoverla. – Apanatshka

+0

Buon punto, @Apanatshka. Ho aggiunto il link e menzionato i pacchetti popolari. Grazie! –

+2

Aha. Pensavo che l'Html fosse parte del nucleo. È strano che non abbia ancora trovato quel collegamento. È nascosto dietro "pacchetti della comunità" [qui] (http://elm-lang.org/docs), che ho letto come "pacchetti personalizzati" come plug-in ... Che l'HTML non è una parte del core non è stato menzionato da qualche parte in [questo tutorial] (https://github.com/evancz/start-app) o negli esempi (usa l'editor online). – KarelG