2012-04-12 2 views
6

"관리 백엔드"레일스 엔진을 구축하려고합니다. 엔진은 다음과 같은 자산을 가지고 가정 :레일스 애셋에 애셋 오버로드 : 보조 보석 애셋 파일을 요청하면 오류가 발생합니다.

ENGINE/app/assets 
├── javascripts 
│   └── railsyard 
│    ├── admin.js.coffee 
│    ├── admin_customizations.js.coffee 
... 

admin.js.coffeeadmin_customizations.js.coffee을 요구하고, 즉, 준비 빈 파일 호스팅 레일 응용 프로그램에 의해 덮어 쓸 수.

[APP/app/assets/javascripts/my_engine/admin_customizations.js.coffee] 
#= require modernizr # this line gets ignored 
alert "Foobar"  # this line works 

주옥 modernizr-rails 오히려 다음 엔진 호스팅 응용 프로그램의 종속성입니다 : 나는 보조 보석에서 오는 약간의 자산을 요구하려고 할 때까지

[ENGINE/app/assets/javascripts/my_engine/admin.js.coffee] 
#= require admin_customizations 
# ...some code... 

[ENGINE/app/assets/javascripts/my_engine/admin_customizations.js.coffee] 
# Override this empty file to add custom JS behaviour! 

모든 것이 훌륭하게 작동합니다. 일부 엔진 자산 파일의 재정의가 아닌 자산 파일에서 modernizr을 요청하면 모든 것이 다시 작동합니다.

이 상황을 해결할 방법이 있습니까?

+0

대체 파일에 이점이 있습니까? 내 말은, 개발자는 자신의 js를 추가 할 수 있습니다. – thomasfedb

+0

은 http://stackoverflow.com/questions/18261116/how-to-change-the-order-that-gems-are-loaded-from-within-one-of-the-gems와 관련이있을 수 있습니다. – montrealmike

답변

0

나는 당신이 말한 문제없이 정확히 묘사 한 것을 믿습니다.

다른 일이 발생하지 않았습니까? 을 무시하는 요구 회선은을별로 무시하지 않습니다. 톱니 바퀴에는 필요한 파일이 포함되어 있거나 찾을 수없는 경우 레이즈해야합니다. 조용히 아무 것도하지 않으면 옳은 것처럼 보입니다.

톱니 바퀴 또는 레일스 자산 파이프 라인에서 버그를 유발할 가능성이 있습니다.하지만 다른 일이 발생할 가능성이 있습니다.

모질라 젬에서 요구하는 것을 우연히 무시한 채 자신의 빈 'modernizr.js` 파일을 실수로 로컬 앱 및/또는 엔진에 제공하지 않았습니까?

스프로킷 require 줄은 파일의 코드보다 앞에 오는 주석에 있어야하며, 첫 번째 의견 블록에 있어야합니다. 너를 데려 올 수 있을까?

또는 어쩌면 당신이 생각하는 것이 아닌 다른 것일 수도 있습니다.

실은 coffeescript를 나 자신으로 사용하지 않습니다. 어쨌든 coffeescript와 함께 이상한 점이 있습니까?

관련 문제