Portanto, tenho uma app/assets/stylesheets/
estrutura de diretório semelhante a esta:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
Em cada diretório, há vários parciais de sass (normalmente * .css.scss, mas um ou dois * .css.scss.erb).
Posso estar supondo muito, mas o rails DEVE compilar automaticamente todos os arquivos nesses diretórios por causa de *= require_tree .
em application.css, certo?
Recentemente, tentei reestruturar esses arquivos removendo todas as variáveis de cores e colocando-as em um arquivo na app/assets/stylesheets
pasta raiz (_colors.css.scss). Em seguida, criei um arquivo na app/assets/stylesheets
pasta raiz chamado master.css.scss que se parece com este:
// Color Palette
@import "colors";
// Mixins
@import "mixins/buttons/standard_button";
@import "mixins/gradients/table_header_fade";
@import "mixins/vendor_support/rounded_corners";
@import "mixins/vendor_support/rounded_corners_top";
@import "mixins/vendor_support/box_shadow";
@import "mixins/vendor_support/opacity";
Eu realmente não entendo como o rails lida com a ordem de compilação de ativos, mas obviamente não é a meu favor. Parece que nenhum dos arquivos percebe que eles têm alguma variável ou mixins sendo importados, e por isso gera erros e não consigo compilar.
Undefined variable: "$dialog_divider_color".
(in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb)
Undefined mixin 'rounded_corners'.
(in /home/blah/app/assets/stylesheets/widgets.css.scss)
A variável $dialog_divider_color
está claramente definida em _colors.css.scss e _master.css.scss
está importando cores e todos os meus mixins. Mas aparentemente o Rails não recebeu esse memorando.
Existe alguma maneira de corrigir esses erros, ou vou precisar recorrer a colocar todas as minhas definições de variáveis de volta em cada arquivo individual, bem como todas as importações do mixin?
Infelizmente, esse cara não parece pensar que isso seja possível, mas espero que ele esteja errado. Quaisquer pensamentos são muito apreciados.