2012-06-04 3 views
-2

Windows OS에서 Javascript 파일을 100 개 작성하고 거의 절반에서 문제가 발생했습니다. minfiying 압축기는 점으로 표시되는 기능을 가진 js 파일을 제대로 축소 할 수 없습니다. YUI 압축기의 경우, 이러한 상황이 발생하면 파일의 내용을 삭제하고, Ajaxminifier의 경우에는 점을 무시하고 그 전에 함수 이름을 가져옵니다. 해당 함수함수 이름이 '.'로 분리 된 JavaScript 파일을 축소하는 방법은 무엇입니까?

예 :

function window.onload() {} 

Error Message: :missing (before function parameters 

MSBuild에서 작업 및 명령 라인 모두로 YUI 압축기 사용이 높을 동일한 결과.

명령 줄 예 :

java -jar yuicompressor.jar --type js --charset utf-8 -o D:\foo.js D:\foo-min.js 

아약스 Minifier의 예를 사용 :

명령 행 :

AjaxMin.exe -o D:\foo.js D:\foo-min.js 

그러나, 하나 개의 솔루션이 기능을 재 작성하는 것입니다 그리고 minification 과정

window.onload = function() {} 

을하지만 지금, 우리를 위해 옵션을 선택하지 않습니다 :의 큰 예를 작동합니다. 누구든지이 문제에 대해 알고 있고 솔루션을 제공 할 수 있습니까?


감사합니다. 예, 저는이 파일들을 상속 받았고, 왜 이것이이 방법으로 쓰여졌는지 결정하지 않았습니다. 나는 그것을 적절한 JS로 변환하는 프로세서가 있다고 생각하지 않는다. 나는 IE에서만 실행되는 웹 애플리케이션을 알고있다. 이것이 이것이 작동하는 이유 일 수있다. 파이어 폭스 등에서는 그렇지 않을 수도 있습니다.이 변경된 내용을 찾으려고합니다.

+8

'function window.onload() {}'는 (는) 유효한 자바 스크립트가 아닙니다. 프로젝트의 절반이 죽은 코드입니까? – Esailija

+3

'window.onload = function() {}'은 (는) 올바른 JavaScript입니다. 코드가 깨지지 않도록 코드를 다시 작성하면 "옵션이 아닙니다."라는 옵션이 없습니다. – meagar

+1

왜 구문 적으로 올바른 코드를 "옵션이 아닌"것으로 작성합니까? 응답에 대해 감사합니다. –

답변

7

잘못된 자바 스크립트를 축소하려고했기 때문에 깨졌습니다. 기능에는 도트를 사용할 수 없습니다.

네임 스페이스를 사용하려고 생각합니다. 그렇다면 다음과 같이하면 좋을 것입니다 :

var myVar = { 
    foo: function() { /* do something */ } 
} 

myVar.foo(); 
관련 문제