2016-03-20 11 views
5

Come si importa un file .scss.erb in Middleman 4?Come posso importare un file .scss.erb in middleman4?

Ho appena aggiornato da Middleman 3 a 4. I che questo è il mio ultimo numero ...

Ho un file all.css.scss che assomiglia a questo:

@charset "utf-8"; 

@import "settings"; 
@import "imports"; 
@import "base"; 
@import "signature_pad" 

Tutti i file di importazione ad eccezione delle importazioni.

La differenza con settings è che è _imports.scss.erb

Poi quando provo e caricare all.css ottengo questo:

Error: File to import not found or unreadable: imports. 
     Load paths: 
     /Users/myMyserId/apps/projectName/source/assets/css 
     /Users/myUserId/.rvm/gems/ruby-2.0.0-p451/gems/compass-core-1.0.3/stylesheets 
     Compass::SpriteImporter 
     /Users/myUserId/apps/projectName/source/assets/css 
     /Users/myUserId/.rvm/gems/ruby-2.0.0-p451/gems/compass-core-1.0.3/stylesheets 
     Compass::SpriteImporter 
     /Users/myUserId/apps/projectName/source/assets/css 
     /Users/myUserId/.rvm/gems/ruby-2.0.0-p451/gems/compass-core-1.0.3/stylesheets 
     Compass::SpriteImporter 
     on line 4 of /Users/myUserId/apps/projectName/source/assets/css/all.css.scss 

Credo che il problema è che l'erb non elabora il file prima di renderlo un .scss.

risposta

1

L'aggiunta di pignoni per this forum post ha permesso alle importazioni di funzionare come al solito.

In Gemfile, aggiungere pignoni e un rotaie-asset blocco con il gemfiles scelti dal passo 1:

# Gemfile 
gem 'middleman-sprockets', '4.0.0.rc.3' 

source 'https://rails-assets.org' do 
    gem 'rails-assets-bootstrap-autohidingnavbar', '1.0.0' 
    gem 'rails-assets-jquery', '2.1.1' 
    gem 'rails-assets-slick.js', '1.5.7' 
end 

Nel vostro config.rb, aggiungere il seguente blocco per abilitare la pipeline di asset e aggiungere RailsAssets gemme per il tuo percorso di caricamento:

# config.rb 
# General configuration 
activate :sprockets 

if defined? RailsAssets 
    RailsAssets.load_paths.each do |path| 
    sprockets.append_path path 
    end 
end 
6

La differenza con le impostazioni è che è _imports.scss.erb

Questo è il problema. Middleman non tocca nulla con un trattino di sottolineatura. I file .scss vengono elaborati perché è SASS a fare il lavoro.

La soluzione che sto usando (fino a quando ne trovo un altro) è quella di costruire il secondo file css e includerlo nel mio layout.

Nel tuo caso potresti provare a rimuovere il carattere di sottolineatura; senza il suffisso .css non dovrebbe essere incluso nell'output.

2

Ecco un esempio per farlo funzionare:

// all.css.scss.erb 

<%= partial './_settings.scss' %> 

// rest of css… 

con le impostazioni di file essendo

  • chiamato _settings.scss.erb
  • trova sotto forma di file di pari livello per all.css.scss e
  • si può quindi contiene il codice ERB! :)

Detto questo, vi consiglio caldamente esaminando la funzione di esterno-pipeline in Middleman 4. E 'molto potente e permette una migliore gestione del SASS/SCSS.