2013-03-16 1 views
6

UglifyJS 2을 사용하여 많은 자바 스크립트 파일을 연결하고 축소합니다 (너무 많지는 않지만 약 5 ~ 10 개). 이 프로세스는 UglifyJS 2의 기본 설정을 사용하여 Node.js에서 실행됩니다.UglifyJS 2의 소형화 프로세스 속도를 높이려면 어떻게해야합니까?

기본적으로 파일은 Require.js, jQuery, Backbone.js, Backbone.js입니다. Marionette, Moment.js 및 일부 추가) 도우미 파일을 압축 해제 된 (즉, 개발) 버전으로 제공합니다.

문제는이 프로세스가 거의 10 초 걸리는 것입니다. 내가 옵션으로

{ compress: false } 

넘겨 의해 완전히 축소를 사용하지 않으면

, 그것은 훨씬 빨리,하지만 여전히 약 2 초 정도 걸립니다.

질문 # 1 : UglifyJS 2가 을 가져 오는 것이 일반적일까요? 몇 파일이라도 길어서입니까? 아니면 가장 잘못된 것이 있습니까?

질문 2 : UglifyJS 2의 유용한 옵션을 모두 해제하지 않고 어떻게이 프로세스의 속도를 높일 수 있습니까?

+0

파일 크기에 대한 단서가 없습니다. 압축하는 데 약 7-8 초가 걸리는 JS 프로젝트가 있습니다. 이 프로젝트는 약 7 개의 파일로, 각각 400-500 라인 정도입니다. – Adi

+0

내 질문을 업데이트했지만, 내 시나리오에서 여러 초가 걸리는 것이 정상적인 것 같습니다. 감사 :-)! –

+0

요청할 때마다 이러한 파일을 축소하지 않습니까? – Mchl

답변

7

대형 파일이 여러 개의 큰 파일을 압축하는 데 몇 초가 걸리는 경우는 드뭅니다. 귀하의 경우에는 8-12 초가 적당합니다 (여러 대형 라이브러리).

그러나 이러한 라이브러리를 직접 압축하지 않는 것이 좋습니다. 그들 대부분은 정말 그들이 무슨 일을하는지, 나는 소스의 축소 된 버전을 다운로드하는 것이 좋습니다 알고 간단 같은

copy *.min.js allLibraries.js 

또는

cp *.min.js allLibraries.js 

주의 할 그들 뒤에 개발자의 팀이있다 : 올바른 순서로 연결해야합니다. 보통 The main libraries -> The plugins -> Your code을 의미합니다.

강력한 압축과 같은 멋진 기능을 사용 중지하는 것 이외에 속도를 높이는 것과 관련해서는 할 수있는 일이별로 없습니다.

+0

즉, 축소 된 버전을 구하고, Uglify JS와 같은 도구를 사용하여 내 파일 만 압축 한 다음 연결합니다. –

+1

글쎄, 솔직히 말해서, 이것이 내가하는 일이다. 다른 의견이있을 수 있습니다. – Adi

+5

안녕하세요, 내 대답을 개선하는 데 도움이 될까요? 내가 뭘 잘못했는지 알려주겠습니다. – Adi

11

압축 사용되지 않은 옵션을 false로 설정하면 속도가 약간 빨라집니다. 나는 그저 11 초에서 5.5 초 사이에 내 것을 얻었다.

{ 
     compress: { 
      unused: false 
     } 
    } 

2k 미만의 차이는 없습니다.

+0

좋은 발견, 내 것이 28s에서 8s로갔습니다. 얼마나 많은 파일 크기를 저장했는지 검토 한 결과, 사용되지 않는 코드를 제거하기 위해 약 1kb (약 1.3MB 파일)를 절약 할 수있었습니다 (훨씬 더 크게 기대했을 것입니다). 나는 20s의 속도 향상을 취할 것이다! – ryanm

+3

이것은 허용 된 대답이어야합니다. 속도 향상이 큽니다 – woens

+0

@woens 이것은 경우에 따라 작동해야합니다. 에서와 같이 차이는 프로젝트에 포함해야하는 라이브러리의 수에 따라 1kb보다 커질 수 있습니다. – dosaki

관련 문제