2013-02-25 8 views
5

Nuovo per clojurescript e utilizzo del tutorial "Modern CLJS" here.Librerie Clojurescript - impossibile trovare goog.require

Istruisce di tirare in domina aggiungendolo al project.clj:

:dependencies [[org.clojure/clojure "1.4.0"] 
       [compojure "1.1.5"] 
       [domina "1.0.0"]] 

e poi usarlo nello script facendo riferimento in forma ns

(ns cljstut.login 
    (:use [domina :only [by-id value]])) 

Tuttavia, quando ho effettivamente eseguire questo in un browser, vedo quanto segue nel log della console.

goog.require could not find: domina 

Sembra che manchi qualche dichiarazione da qualche parte? Ma come newb, questo intero processo di costruzione è piuttosto opaco. Tutti i suggerimenti per la risoluzione dei problemi sono molto apprezzati.

risposta

3

Le dipendenze nel file project.clj e le dichiarazioni di spazio dei nomi sono corrette.

Se si sta creando il proprio codice clojurescript utilizzando lein cljsbuild auto, sarà necessario riavviare tale processo. Credo che dovrebbe automaticamente inserire nuove dipendenze dopo un riavvio.

Se ciò non funziona o non si utilizza lein cljsbuild auto, provare a eseguire manualmente il comando lein deps all'interno della cartella del progetto: recupererà tutte le dipendenze mancanti dai repository remoti.

+1

realtà ho appena ottenuto attraverso questo, e penso che potrebbe essere stato domina 1.0.1 che lo ha risolto? Qualcosa su goog-jar o qualcosa era una dipendenza in 1.0.0 e non lo prende più. Sembra ragionevole? – BnWasteland

+0

Ah sì, questo ha senso. Credo che con 'domina 1.0.0' dovessi aggiungere una dipendenza esplicita alla lib di terze parti di clojure di google per far funzionare le cose. – mtyaka

+1

Il riavvio di 'lein cljsbuild auto' ha funzionato per me per un errore simile. – verma

1

Sono in procinto di aggiornare modern-cljs alle ultime versioni dei plugin libs e lein usati. Al momento ho aggiornato la serie fino al settimo tutorial della serie. Ora dovresti essere sicuro aggiornando a domina 1.0.2-SNAPSHOT in project.cljs: dipendenze e in lein-cljsbuild 0.3.0 in project.cljs: plugins.

Mimmo

1

Voglio solo aggiungere che un errore di battitura nel namespace innescherebbe lo stesso messaggio di errore:

goog.require non riusciva a trovare: domina

Esempio (notare la manca "j" in modern-cljs):

(ns modern-cls.login 
    (:use [domina :only [by-id value]])) 

Stavo usando un nome di progetto diverso, quindi uno spazio dei nomi diverso solo per essere coraggioso. Mi morse nel culo quando mi copia-incollato dalla guida e l'errore mi aveva perplesso per un po ':)

3

Inoltre, assicurarsi di aver salvato il file e cercare project.clj esecuzione lein clean e lein cljsbuild clean.

0

Mi sono imbattuto in questo stesso problema mentre lavoravo con il tutorial "Modern CLJS". Il mio problema è stato inavvertitamente aggiungere la dipendenza "domina" alla sezione plugins di project.clj piuttosto che alla sezione: dependencies.

0

Ho superato questo messaggio di errore inserendo le righe nell'ordine corretto nel file index.html.

ordine corretta:

<script src="js/expanding_gases.js" type="text/javascript"></script> 
<script type="text/javascript">goog.require("expanding_gases.flow_gases");</script> 

ordine errato:

<script type="text/javascript">goog.require("expanding_gases.flow_gases");</script> 
<script src="js/expanding_gases.js" type="text/javascript"></script> 

Tra l'altro una buona lettura per la comprensione 'GOOG' messaggi è qui: https://github.com/clojure/clojurescript/wiki/Quick-Start