2013-02-25 5 views
5

clojurescript를 처음 사용하고 "Modern CLJS"자습서 here을 통해 작업합니다.Clojurescript libraries - goog.require 찾을 수 없습니다

그것은 project.clj에 추가하여 domina에 끌어 지시

:

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

을 그리고 때 실제로,

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

그러나 ns 형태를 참조하여 스크립트에서 사용 브라우저에서 실행하면 콘솔 로그에 다음 내용이 표시됩니다.

goog.require could not find: domina 

어딘가에 일부 선언이 누락 된 것 같습니다. 그러나 newb로서,이 모든 빌드 프로세스는 다소 불투명합니다. 모든 문제 해결 팁을 크게 높이 평가합니다.

답변

3

project.clj 파일과 네임 스페이스 선언의 종속 관계가 정상적으로 보입니다.

lein cljsbuild auto을 사용하여 클로저 스크립트 코드를 작성하는 경우 해당 프로세스를 다시 시작해야합니다. 재시작 후 자동으로 새 종속성을 가져와야한다고 생각합니다.

그래도 작동하지 않거나 lein cljsbuild auto을 사용하지 않는 경우 프로젝트 폴더 내에 lein deps 명령을 수동으로 실행하면 원격 저장소에서 누락 된 모든 종속성을 가져옵니다.

+1

는 사실은 그냥 왔 이것을 통해 domina 1.0.1이 수정되었을 수도 있습니다. goog-jar 또는 뭔가에 대한 것이 1.0.0의 종속성이었고 더 이상 필요하지 않습니다. 그게 합리적인 것 같니? – BnWasteland

+0

아, 맞습니다. 나는'domina 1.0.0'을 사용하여 Google clojure 제 3 자 lib에 명시 적 종속성을 추가하여 작업을 완료해야한다고 생각합니다. – mtyaka

+1

'lein cljsbuild auto'를 다시 시작하면 비슷한 오류가 발생했습니다. – verma

1

나는 현재 사용되는 libs 및 lein 플러그인의 최신 버전으로 modern-cljs를 업데이트하는 중입니다. 현재 시리즈의 7 번째 튜토리얼까지 시리즈를 업데이트했습니다. 이제는 domina 1.0.2-SNAPSHOT을 project.cljs : dependencies로 업데이트하고 0.3.0을 project.cljs : plugins에 lein-cljsbuild하는 것으로 안전합니다.

goog.require은 찾을 수 없습니다 : 도미

예합니다 (주의

Mimmo

1

그냥 네임 스페이스에있는 오타 같은 오류 메시지를 트리거 할 것이라는 점을 추가 할 현대의 경우 "j"가 누락 됨) :

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

다른 프로젝트 이름은 다른 네임 스페이스이므로 용감해야합니다. 내가 가이드에서 붙여 넣은 복사 할 때이 엉덩이 나 비트 에러가 잠시 :)

또한
3

, 당신이 당신의 project.clj 파일을 저장했는지 확인하고 lein cleanlein cljsbuild clean을 실행 해 저는 의아해했다.

0

"Modern CLJS"튜토리얼을 통해 작업하는 동안이 동일한 문제가 발생했습니다. 내 문제는 부주의하게 : dependencies 섹션이 아닌 project.clj의 : plugins 섹션에 "domina"의존성을 추가하는 것이 었습니다.

0

index.html 파일에 올바른 순서로 줄을 써서이 오류 메시지가 표시되었습니다.

올바른 순서 :

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

잘못된 순서 : 그런데

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

이해 'GOOG'메시지에 대한 좋은 읽기는 여기에 있습니다 : https://github.com/clojure/clojurescript/wiki/Quick-Start