2011-12-28 2 views
3

내가 자바 스크립트 축약과 압축 과정을 이해하고 이들에 대한 질문 몇 가지를 가지고 노력하고는 : 축소를 디버깅하기 어려운 코드를 만들어 때문에자바 스크립트 축소를 압축

  1. , 그것은 가능한 주문형하는 것입니다 디 실제로 웹 사이트에서 무언가를 디버깅하고 조사해야하는 경우를 대비하여 클라이언트 측에서 은폐 할 것입니다.
  2. 아파치 웹 서버의 일부 옵션을 설정하여 이미지, CSS, 자바 스크립트 등의 모든 리소스를 압축 할 수 있다고 읽었습니다. 아파치 수준에서 수행 된 JavaScript 압축에 차이가 있습니까? YUI Compressor와 같은 도구를 사용하여 완성 된 것입니까?

누군가가 나를 알 수있게 도와 줄 수 있습니까?

JavaScript 파일을 실제로 축소해야하는 경우에는 JavaScript 오류가 발생했습니다. X. 축소 된 파일의 경우 어떤 코드 블록이 생산에 오류를 일으키는 지 알면 매우 어려울 것입니다. 줄이 모두 축소 된 파일로 묶여 있기 때문입니다. 그런 상황에서 어떻게 조사하고 디버깅합니까? 또 다른 사용자는 Packed/minified javascript failing in IE6 - how to debug? 개의 질문에서이 디버깅 문제를 언급했습니다 (IE6에서는 약간의 문제가 있음).

답변

2

축소를 디버그에 코드를 어렵게하기 때문에, 그것은 당신이 실제로 디버그에 필요한 경우 에 대한 업을 커버하고 에 뭔가를 조사하기 위해 클라이언트 측에 주문형 드 축약을 할 을 할 수있다 웹 사이트?

일종의. 축소 된 javascript는 동일한 구조를 가지며 여분의 공백을 삭제하고 변수 이름을 줄이는 것과 같은 작업을 수행합니다. 따라서 코드를 수동 또는 스크립트로 쉽게 다시 읽을 수는 있지만 변수 이름을 복구 할 수는 없으므로 코드가 여전히 사용하기가 어려울 수 있습니다. 따라서 원래 코드를 가지고 있다면 확실히 제거하지 마십시오. 축소 코드를 별도로 저장하십시오.

내가 하나가 아파치 웹 서버의 일부 옵션 을 설정하여 (이미지, CSS, 자바 스크립트 등과 같은) 모든 자원의 압축을 활성화 할 수있는 곳 읽는 기억한다.

예, gzip 압축이라고합니다. 아파치 만의 고유 한 기능은 아니지만 서버를 사용 가능하게 구성해야합니다.

Apache 수준에서 수행되는 javascript 압축에는 차이가 있습니까? YUI Compressor와 같은 도구를 사용하여 수행 한 압축은 무엇입니까?

예. YUI 압축기는 minifier입니다. 출력은 유효한 javascript입니다. 서버 측 압축은 파일을 압축하는 것과 유사합니다. 브라우저는 사용하기 전에 압축해야합니다. 두 파일을 함께 사용하면 파일 크기가 가장 작아집니다.

+0

내 질문에 모두 대답 했으므로이 질문을 답변으로 받아들입니다. 고맙습니다! – peakit

3

일반적으로 개발자는 배포하기 전에 압축되지 않은 스크립트 파일에 대해 개발하고 압축합니다.

돌아가서 스크립트 파일을 디버그해야하는 경우 일반 압축되지 않은 파일을 열고 작업하고 압축하고 배포하면됩니다. 웹 사이트가 번 생산품 인에있는 동안 디버그를 의미하는 경우, 필요에 따라 스크립트 파일을 축소 할 수 없습니다.

그렇습니다. Apache와 IIS조차도 gzip으로 자동으로 스크립트와 이미지를 압축 할 수 있습니다.

+0

저는 현대적인 [Rails] (http://rubyonrails.org)가 자산을 처리하는 방법을 좋아합니다. 그것들을 gzip하고 타임 스탬프합니다. 프로덕션 환경에서 CPU를 더 이상 사용하지 않습니다. 또한 캐시 친화적입니다. –

+0

다른 삶에서 저는 RoR 개발자라고 생각합니다 ...이 세상에서 그것은 기본적으로 C#을 사용하는 레일스 인 MVC입니다 ... ... 악화 될 수 있습니다 ...:) –

+0

@ Adam, 'OriginalSyn'의 답변 중 하나를 체크 아웃하면 크롬이 _partially_ 자바 스크립트 파일을 축소 할 수 있도록 도와줍니다. – peakit

8

축소 된 코드를 디버깅해서는 안됩니다. 이상적으로 개발 프로세스는 다음과 같습니다.

  1. 로컬로 사이트를 빌드하고 디버깅합니다. 당신은 자바 스크립트, 스타일 시트 및 모든것의 정식 버전을 가지고 있습니다.

  2. 프로덕션 컴퓨터에 버전을 배포합니다. 자산 사본을 축소하고 gzip 한 다음 서버로 밀어 넣습니다. 지역 개발 사본은 변경되지 않습니다.

  3. 프로덕션 환경에 버그가있는 경우 로컬 버전을 수정하고 축소, 압축 및 업로드하십시오. 이익까지

반복

+0

+1 PROFIT에 대해 :) –

+0

@ Sergei Tulentsev, 내가 위의 내 질문의 EDIT 섹션에서 언급했던 디버깅에 대한 자세한 내용을 제공했습니다. 그걸 살펴보고 그 일을하는 방법에 대한 의견을 좀 주시겠습니까? 감사. – peakit

+0

다음 중 하나를 수행합니다. 1) 프로덕션 환경을 어딘가에 복제하고 전체 javascript로 문제를 재현 해보십시오. 2) 전체 자바 스크립트를 프로덕션으로 복사하고 ** ** ** 로그인하면 (그리고 다른 모든 버전은 계속 축소 된 버전 사용) –

1
  1. 내가 JS 파일의 로컬 unminified 복사 작업을 선호하고, 내가 사이트를 배포 할 때, 나는 하나에 모든 JS-파일을 축소하세요. 그렇게하면 코드를 디버그하고 개선하는 것이 쉽습니다. 그러나, 축소를 되 돌리는 도구가 있습니다. 이 SO post을 자바 스크립트 축소 축소에 대해 살펴보십시오.
  2. GZIP 압축 - This blog에서 Apache에서 GZIP를 활성화하는 방법과 서버가 실제로 파일을 압축하고 있는지 확인하는 방법을 설명합니다.
1

은 가능한

일부 브라우저가 자동으로 소스 코드를 포맷하는 "꽤 코드"보기를 클라이언트 측에 주문형 드 축약을하는 것입니다. Firebug의 CSS 탭을 참조하십시오.

Apache 수준에서 수행되는 javascript 압축에는 차이가 있습니까? YUI Compressor와 같은 도구를 사용하여 수행 한 압축은 무엇입니까?

YIU 압축기는 실제로 소형화 기입니다. Apache 압축은 파일을 클라이언트에 보내기 전에 파일을 압축하여 실제 파일을 디스크의 파일보다 작게 만듭니다. 그것들은 서로 독립적 인 두 가지 기술입니다.

4

크롬 개발 도구는 해제 난독 수는

(실제 환경은 디바이스에보고되지 않을 수 있습니다에 버그를 복제 할 때 유용) 생산 코드를 디버깅 할 경우 자바 스크립트 코드 (및 해제 작게하다)를 enter image description here enter image description here

+0

+1을 공유해 주셔서 감사합니다. :) – peakit

관련 문제