2010-02-09 2 views
6

Possible Duplicate:
jQuery compiled with Google Closure Compiler구글 폐쇄 컴파일러

내가 jQuery를 사용하고 내가 application.js 파일에 내 JS의 모든 코드를 사용. 고급 옵션을 사용하여 Google 클로저 컴파일러로 'application.js'를 컴파일하면 오류 및 경고없이 js 파일이 생성됩니다. 그러나 내 페이지에서 파일을 사용할 수 없습니다. "TypeError : 결과 표현식 '$ ("div.tile ") d'[undefined]가 함수가 아닙니다. '라는 페이지로드시 오류가 발생합니다.

제 질문은입니다. jQuery를 사용하는 js 파일을 컴파일 할 수 있습니까?

답변

1

예, 다른 파일에 jQuery 파일을 포함하는 것이 좋습니다.

예, 단순 모드를 사용하는 경우.

그렇지 않으면 아니요.

+1

을 읽어 고급 최적화를 켤 수없는 이유에 관심이 있다면

; 당신은 고급 옵티 마이저를 통해 jQuery 소스를 실행할 수 없다. 간단한 컴파일러 만 사용하고 jQuery의 code_url 매개 변수를 지정할 수 있지만 출력에 jQuery 전체가 포함됩니다. – Gabe

16

js 파일이 jQuery에 'extern'파일을 지정하여 jQuery를 사용하도록 지정하면 고급 모드를 사용할 수도 있습니다. 이렇게하면 클로저 컴파일러는 자바 스크립트 내부에서 jQuery 함수 호출을 변경하지 않습니다.

java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js_output_file application.js --externs jquery-1.4.4.externs.js 

당신은 여기에 jQuery를 통근 일부 파일을 찾을 수 있습니다 http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/

8

당신은 최적화되지 무엇 폐쇄 컴파일러에게 있습니다.

온라인 컴파일러 (http://closure-compiler.appspot.com/home)에서 externs_url 매개 변수를 추가하여이 작업을 수행합니다. 온라인 컴파일러에서 코드를 입력하면 기본적으로 externs_url 매개 변수없이 이와 유사한 헤더가 자동으로 추가됩니다.

// ==ClosureCompiler== 
// @output_file_name default.js 
// @compilation_level ADVANCED_OPTIMIZATIONS 
// @externs_url https://closure-compiler.googlecode.com/git/contrib/externs/jquery-1.9.js 
// ==/ClosureCompiler== 

현재 어떤 외부 파일이 https://code.google.com/p/closure-compiler/source/browse/contrib/externs/에 있는지 확인할 수 있습니다. 그들은 jQuery의 모든 버전을 가지고 있습니다.

다운로드 가능한 Java 버전의 컴파일러에서이 작업을 수행하려면 cli에 --externs_url 매개 변수를 전달하거나 필요한 extern 파일을 다운로드 한 다음 Palmerlee의 대답과 같이 --externs 매개 변수와 함께 해당 파일 이름을 전달하면됩니다. 방금 http://code.google.com/closure/compiler/docs/api-tutorial3.html 그는 고급 최적화를 사용하고자하기 때문에 위의 질문에 대해 작동하지 않습니다

+0

프리앰블을 다운로드 할 수있는 Java 버전의 컴파일러와 함께 어떻게 사용합니까? 나는 "ERROR - 변수 X가 선언되지 않았다"라는 많은 것을 얻었고 - 모두를 --externs로 추가하는 것은 매우 번거롭다. –

+0

@lambdor 정상적인 다운로드 버전에는 --externs를 사용해야한다고 생각합니다. 또한 프리앰블 버전을 사용하는 API를 통해 온라인 버전에 액세스 할 수 있습니다. https://developers.google.com/closure/compiler/docs/gettingstarted_api – Gabe

+0

"다운로드 가능한 Java 버전의 컴파일러에서이 작업을 수행하려면 cli의'--externs_url' 매개 변수 "를 참조하십시오. 사실이 아닙니다, 불행히도 "'"--externs_url "은 유효한 옵션이 아닙니다." " – kuporific