2012-08-27 3 views
2

내가 뭘하려고하는지 (그리고 나는 가능하지 않다) UglifierJS를 사용하여 AST 'mangle'옵션 객체를 사용하여 JS 파일을 사전 처리하는 것이다. 당신이 UglifyJS에 전달할 수있는 옵션 {{DEVMODE 진정한}을 정의는}있다 https://github.com/mishoo/UglifyJS#use-as-a-code-pre-processorUglifier와 자산 파이프 라인으로 JS 사전 처리를 수행하는 방법은 무엇입니까?

기본적으로 동일한을 사용하여 레일로 작동하는 추하게 GEM은 GEM의 일부가 안된다 "정의합니다"

구현 방법을 설명했지만 몇 줄의 보석을 변경하여 하드 코딩하여 한 가지 옵션으로 추가했습니다.

어쨌든 중요한 점은 개발 과정에서 전처리 접근법을 어떻게 사용할 수 있습니까? 따라서 자산 파이프 라인이 이러한 방식으로 JS 파일을 제공합니까?

답변

1

Uglifier에 대한 정의에 대한 지원이 추가되었습니다. 아직 릴리즈되지는 않았지만 git의 최신 버전에 따라 사용할 수 있습니다.

Gemfile : 중고 정의, 예를 들어 함께

gem 'uglifier', :git => 'https://github.com/lautis/uglifier.git' 

인스턴스화 Uglifier

Uglifier.new(:define => {"DEVMODE" => true}) 

또는 자산 파이프 라인을 사용할 때 erb 전처리기를 JS 코드와 함께 사용할 수 있습니다. 파일 이름을 something.js.erb로 지정하고

+0

과 같은 코드를 작성하십시오. @Lautis에 감사드립니다. ERB가 탁월한 접근 방식이지만 개발 과정에서 JS 출력을 사전 처리하기 위해': define' 옵션 만 사용하여 자산 파이프 라인에서 Uglifier를 사용하는 방법이 있습니까? (may) 더 빠르며 더 예쁘다 :) – lmerino

+1

dev env에서 압축을 활성화하고 Uglifier가 JS (mangle : false, squeeze : false)를 실제로 압축하지 않도록 설정할 수있다. 그것은 여전히 ​​천천히 질겁합니다. DEVMODE 및 유사한 상수가 설정된 env.js.erb가있을 것입니다. Uglifier를 사용하여 프로덕션 환경에서 이러한 값을 설정하고 배포 된 자산에서 코드를 완전히 생략 할 수 있습니다. – Lautis

+0

좋은. 다시 큰 조언을 주셔서 감사합니다! – lmerino

관련 문제