Me encontré frente a un comportamiento extraño de la tarea assets:precompile
, o al menos frente a algo que no entiendo del todo.Activos de rieles: comportamiento extraño de precompilación
Por lo tanto, estoy utilizando Rails 3.1.3, Sprockets 2.0.3, Less 2.0.11 para mi aplicación web, además confío en Bootstrap para el diseño, por lo que estoy usando también less-rails 2.1.8 y menos -rails-bootstrap 2.0.8. He personalizado el estilo como dicen here.
La configuración de mis activos es:
stylesheets
|--application.css.scss
|--custom-style/
|--variables.less
|--mixins.less
|--buttons.less
|--custom-style.css.less
En application.css.scss hago
//=require custom-style
Y en la costumbre de estilo hago
@import "twitter/bootstrap/reset";
//@import "twitter/bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
@import "custom-style/variables";
//@import "twitter/bootstrap/mixins";
@import "custom-style/mixins";
// And all the other standar twitter/bootstrap imports...
// Other custom-style files to import
@import "custom-style/buttons"
//...
// And other rules here
//...
Finalmente en buttons.less
Uso algunas variables y mixins definidas en variables.less
y mixins.less
B archivos Ootstrap, @white
y .buttonBackground
para ser más específicos.
Si lanzo bundle exec rake assets:precompile
con la configuración anterior, la tarea falla y me sale este error:
$ bundle exec rake assets:precompile
/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ruby /usr/local/rvm/gems/ruby-1.9.3-p0/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
.buttonBackground is undefined
Pero es que si hago esto cambia
buttons.less --> buttons.css.less
@import "buttons" --> @import "buttons.css.less"
Todo funciona bien !!
¿Está relacionado con el alcance de menos variables y funciones cuando se trabaja con importaciones anidadas? ¿O algo que tiene que ver con la orden, menos analizador, o Sprockets, procesa el árbol de importación?
¿Me falta algo o hago algo de forma incorrecta?
Gracias :)
Nota: me sale el error incluso con las variables originales y los archivos mixins, por lo que no está conectado con las sustituciones realizadas en ellos.
"Me encontré frente a un comportamiento extraño de los activos: tarea de precompilación" - ¿no tenemos todos :) También me parece que la mezcla de los archivos application.css.scss y .less podría ser una problema. Probablemente probaría LESS/SASS y quizás Sass no reconozca tus directivas @import. No es necesario, así que cambie application.css.scss -> application.css, elimine los sass-rails de Gemfile y vea si esto ayuda. Buena suerte :) – sbeam