2011-03-16 5 views
2

저는 순수 js 프런트 엔드를 여기에서 다루고 있으며 Juicer을 사용하여 javascript를 압축하려고했습니다. JsLint에서 찾은 라이브러리에서 오류가 많아서 파일 유효성 검사를 통과해야 파일을 최소화 할 수 없으므로 축소되지 않은 상태에서도 괜찮은 생각이 들었습니다. 적어도 병합 작업을 수행하는 것이 시원할 것이므로 그대로 두었지만 사실이 아닌 것으로 보입니다. 결국 모든 파일이 실제로 하나로 병합되었지만 jquery는 정의되지 않은 것으로 간주되어 앱이 작동을 멈췄습니다. 그러나 파일에서 첫 번째 장소에 머물러 있습니다.js 파일의 단순한 병합으로 인해 오류가 발생하고 jquery가 정의되지 않았습니다.

그런 이상한 행동의 원인은 무엇일까요? 귀하의 답변에 미리 감사드립니다. 만 병합하지를 축소하세요, 아니면 수동으로 병합 시도하려는 때문에 여기

UPD는 link to the merged file

+0

라이브러리에 수 많은 오류가 있습니까? 실제 오류 또는 jslint 오류를 의미합니까? –

+0

그들은 일반적으로 포함되는 것과 동일한 순서로 병합 되었습니까? 질문에 자바 스크립트를 게시하거나 페이지에 연결할 수 있습니까? – ctcherry

+0

그들은 jslint "오류"입니다. 주문은 정확히 동일하며 파일은 https://gist.github.com/874368입니다. 이 파일을 포함하여 얻는 오류는 "vendor.min.js : 4147Uncaught SyntaxError : 예기치 않은 토큰 ILLEGAL"입니다. 주석에 오류가 있기 때문에 실제로 얻지 못합니다. 다른 js 파일을 포함하면 jquery를 인식 할 수 없습니다. – lyuba

답변

5

입니다. 단지 :

cat file1.js file2.js file3.js > all.js 

CSS의 경우와 마찬가지로 멋진 병합이 필요하지 않습니다.

JavaScript의 축소를 위해 다른 도구와 달리 코드를 손상시키지 않으므로 UglifyJS을 권장합니다. UglifyJS는 jQuery에서 사용됩니다.

간단한 연결로 JavaScript 파일을 병합 할 때 중요한 것은 파일의 종속성을 손상시키지 않는 순서입니다. 때로는 문제를 일으키는 또 다른 일은 파일 끝에서 세미콜론 (누락 된 코드가 누락 될 수 있음)이나 누락 된 줄 바꿈이 누락 된 것입니다.

+0

Iloveyouiloveyouiloveyou. UglifyJS는 최고의 물건입니다. 오 이런. 방금 수작업으로 몇 시간을 절약했습니다. – Kayla

+0

@tylermwashburn : 너무 많이 만들면 [beautifier] (http://jsbeautifier.org/)를 사용하십시오. ;) – rsp

+0

나는 이미 그것에 대해 알고 있었다. ;) – Kayla

관련 문제