2013-03-19 2 views
0

레일스 자산 파이프 라인에서 처리하는 파일이 somefile.js.coffee.erb입니다. 내 ERB 코드는 Coffee가 구문 분석 할 수없는 일부 문자열을 반환하여 SyntaxError 예외를 발생시킵니다. 생성 된 somefile.js.coffee 파일 또는 일반적으로 자산 파이프 라인에서 처리되는 모든 중간 파일을 살펴보고 싶습니다.자산 파이프 라인에서 처리하는 중간 파일을 어떻게 확인할 수 있습니까?

내가 행운과 톱니을 검토 시도했다 :

environment = Sprockets::Environment.new 
MyApplication::Application.config.assets.paths.each {|p| environment.append_path p} 
rerb = environment['somefile.js.coffee.erb'] 
rerb.source #=> it's already preprocessed 

또는 \ TMP \ 캐시 \ 자산로 볼 수 있지만, additionaly 핑거 프린트 이름으로 가려에만 전처리 파일도 있습니다.

어쩌면 자산 파이프 라인에 훅하는 방법 내가 어떻게 아무 생각이

가 왜 ERB 필요 ...이? KnockoutJS ( https://github.com/dnagir/knockout-rails 확장 -> https://github.com/KrzysztofMadejski/knockout-rails)를 사용하여 Rails 모델과 일치하는 필드 및 유효성 검증을 가진 클라이언트 측 모델 스텁을 생성하려면.

나는 Rails '~> 3.2.12', 스프로킷 (2.2.2)을 사용하고 있습니다.

편집 :

### 
<%= somefun() %> 
### 

내가 @Semyon을 사용하는 것이 좋습니다 것입니다 입력해도 : 나는 커피 스크립트 파일이 아직 컴파일하는 동안 몰래 피크를 위해 생성 된 코드에서, ### 코멘트 ERB 코드를 주입 ​​결국했습니다 Perepelitsa는 커피 컴파일러에서 볼 수 있듯이 커피 스크립트 파일을 생성하므로 대답합니다.

답변

1

파일 확장자에서 "coffee"를 일시적으로 제거하십시오 : somefile.js.erb. /assets/somefile.js에서 중간 상태를 볼 수 있습니다. CoffeeScript가 처리하지 않기 때문입니다.

+0

더 간단 할수록 더 좋습니다! 고맙습니다. 나는 커피 컴파일러에서 볼 수 있듯이 ###의 어려운 코멘트를 사용하고 ERB 코드를 내부에 넣었지만 전체 파일을 생성 할 때 훨씬 좋습니다. – Kangur

0

라인 바로 앞에 <% binding.pry %>을 붙이고 주위를 망칠 수 있는지 궁금합니다. 컴파일 중 시도하지 않았으며 coffeescript를 사용하지 않았습니다. 이론 상으로는, gem pry을 Gemfile에 넣고, 먼저 bundle을 실행하면, 그것은 작동해야합니다 (또는 시도 할 가치가 있습니다).