2013-12-19 5 views
8

내 앱에서 JavaScript를 축소 하시려면 grunt-contrib-uglify 작업을 사용하고 있습니다.UglifyJS 'use strict statement'

축소되면 모든 첫 번째 것을 제외하고는 'use strict' 문을 모두 제거하므로 상단에 'use strict'지시어가있는 거대한 자바 스크립트 파일이 나타납니다.

글로벌 'use strict' 지시어는 엄격한 모드에서 모든 제 3 자 코드가 작성되지 않았기 때문에 브라우저가 "엄격 모드"에서 프로젝트에서 사용하는 모든 라이브러리 코드를 실행하게하고 오류를 일으키는 것이 문제입니다 .

해결 방법에 대한 아이디어가 있으십니까?

+0

UglifyJS2 프로젝트 페이지의 [이 주석] (https://github.com/mishoo/UglifyJS2/issues/128#issuecomment-13805371)에 설명 된대로 해결하기가 쉽지 않습니다. –

+0

@rawry 다음 버전 인 https://github.com/mishoo/UglifyJS2를 사용해 볼 수 있습니까? 이 새 버전에서 문제가 해결 된 것 같습니다. – Vishwanath

답변

6

모든 스크립트를 IIFE으로 감싸는 경우 grunt-contrib-uglify은 해당 진술을 중지 지점에 배치하지 않으며 사용자가 작성하는 모든 IIFE 안에 그대로 둡니다.

(function() { 
    'use strict'; 

    // do stuff 
})(); 

예, 더 많은 코드가 있지만 파일을 gzipping하면 문제가되지 않습니다. 또한 전역 범위 외부에서 정의한 변수를 유지하므로 더 많은 코드가 생성됩니다.

+0

이 질문은 고대에 유감입니다. –

관련 문제