2013-07-19 5 views
1

나는 Yeoman 프로젝트의 자바 스크립트 파일에 grunt-contrib-uglify을 사용합니다. Selectvizr 라이브러리를 실행하면 (바우어를 사용하여 뽑아) 결과 파일은 다음과 같습니다 :맹그로브 그란트 태스크를 사용하여 선택을 취소 함

!function(win){return}(this); 

내가 Selectivizr 브라우저가 그런트 그렇게 아마도, IE가 아닌 경우 아무것도하지 않도록 설정되어 있기 때문에 그 생각 실행 컨텍스트는 단지 그것을 수행하고 있습니까?

그래서 Selectivizr에서 Uglify를 실행하고 사용할 수 있는지 알고 싶습니다.

+0

Selectivizr v1.0.3b가이 문제를 해결해주는 것 같습니다. – Bitneko

답변

2

Uglify는 최적화 목적으로 만 JavaScript를 처리합니다. 그것의 임무는 가능한 한 파일을 아주 작게 만드는 것입니다. 이렇게하려면 코드의 변수가 아닌 조건 (예 : if (true) { return; })을 감지합니다. true이 항상 true이므로이 조건의 기능이 해석되고 최적화됩니다.

그래서 제대로 작동 했으므로 Uglify 버그가 아닙니다. 나는 Selectivizr이 사용하고있는 속임수에 익숙하지 않지만 작동한다면 작동한다.

불행히도 내가 생각할 수있는 유일한 해결책은 파일에서 Uglify를 실행시키지 않고 직접 dist/에 복사하는 것입니다.

if (/*@[email protected]*/true) return; 

이것은 추하게/CONCAT 작업을 깨는 라인은 다음과 같습니다

0

다른 솔루션은 코멘트에/selectivizr.js의 라인 (32)을 삭제합니다. 다시 실행하면 작동합니다. Github

1
var result = navigator.userAgent.match(/MSIE (\d+)/); 
if (result) { 
    var ieVersion = result[1]; 
} 
else { 
    return; 
} 

더이 문제를 해결하기 위해 위의 코드를 사용하십시오. 나도 똑같은 문제를 겪었고이 라인을 업데이트 한 후에 수정되었다.