2013-02-25 26 views
5

Yeni Clojurescript ve "Modern CLJS" öğreticisi here aracılığıyla çalışıyor.Clojurescript kitaplıkları - goog.require

O project.clj ekleyerek domina çekmek için talimat

:

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

Ve sonra ben aslında

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

Ancak ns biçimde onu başvurarak komut dosyanızda kullanabilirsiniz Bunu bir tarayıcıda çalıştırıyorum, konsol günlüğünde aşağıdakileri görüyorum.

goog.require could not find: domina 

Bir yerde bir bildiri eksik gibi görünüyor mu? Ama bir yenisi olarak, bu bütün inşa süreci oldukça opaktır. Herhangi bir sorun giderme ipucu büyük beğeni topluyor.

cevap

3

project.clj dosyanızla ilişkili olan alan adları ve boşluklarınız boş görünüyor.

Eğer clojurescript kodunuzu lein cljsbuild auto kullanarak yapıyorsanız, bu işlemi yeniden başlatmanız gerekecektir. Yeniden başlatmanın ardından yeni bağımlılıkları otomatik olarak çekmesi gerektiğine inanıyorum.

Bu işe yaramıyorsa veya lein cljsbuild auto kullanmıyorsanız, projenizin klasörünün içinde bulunan lein deps komutunu manuel olarak çalıştırmayı deneyin. Bu, tüm bağımlı bağımlılıkları uzak depolardan alacaktır.

+1

Aslında sadece kazanılmış ettik Bu aracılığıyla, ve o düzeltilmiş domina 1.0.1 olmuş olabilir düşünüyorum? Goog-jar ya da bir şey hakkında bir şey 1.0.0 bağımlılık oldu ve artık bunu alır. Bu makul görünüyor mu? – BnWasteland

+0

Ah evet, bu mantıklı. Ben domina 1.0.0 ile inanıyorum şeyler yapmak için google clojure üçüncü parti lib açık bir bağımlılık eklemek zorunda kaldı. – mtyaka

+1

'lein cljsbuild auto''ı yeniden başlatmak, benzer bir hata için benim için çalıştı. – verma

1

Modern-cljleri kullanılan lib'lerin ve lein eklentilerinin en son sürümlerine güncelleme işlemindeyim. Şu anda diziyi dizinin 7. öğretisine kadar güncelledim. Şimdi proje.cljs içine domina 1.0.2-SNAPSHOT güncellenmesi güvenli olmalıdır: bağımlılıklar ve lein-cljsbuild 0.3.0 içine project.cljs: eklentileri.

goog.require bulamadık: Domina

Örnek (not

Mimmo

1

Sadece ad alanında bir yazım hatası aynı hata iletisini tetikleyecek eklemek istiyorum Modern-cljs'de "j" eksik):

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

Farklı bir proje adı, bu nedenle sadece cesur olmak için farklı bir isim alanıdır. Ben kılavuzundan-yapıştırılan kopya zaman kıçından ısırdı ve hata bir süre :)

Ayrıca
3

, kendi project.clj dosyayı kaydettiğiniz dikkat edin ve lein clean ve lein cljsbuild clean çalıştırmayı deneyin için beni şaşkın vardı. "Modern CLJS" öğreticisi ile çalışırken aynı sorunla karşılaştım.

0

Benim sorunum yanlışlıkla "domina" bağımlılığı ekledi: Bağımlılıklar bölümü yerine project.clj eklentileri bölümü.

0

Bu hata iletisini, satırları index.html dosyasında doğru sıraya koyarak geçtim.

Doğru düzeni:

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

Yanlış düzen: Bu arada

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

anlayış 'goog' mesajları için iyi bir okuma buradadır: https://github.com/clojure/clojurescript/wiki/Quick-Start