2013-07-11 12 views
20

in meno posso fare qualcosa di simileLe variabili possono essere utilizzate nelle istruzioni di importazione per i file Sass?

@basePath:"../../some_crazy_project_path_to_repeat/less/"; 
@import "@{basePath}less.less"; 

Così ho provato a fare la stessa cosa in Sass

$basePath:"../../some_crazy_project_path_to_repeat/less/"; 
@import "${basePath}less.scss"; 
// Syntax error: File to import not found or unreadable: ${basePath}less.scss. 

e

@import "#{basePath}less.scss"; 
// Syntax error: File to import not found or unreadable: #{basePath}less.scss. 

C'è un modo per fare questo in Sass?

+6

[stringa interpolazione] (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#interpolation_) utilizza '# {}' – steveax

+0

l'interpolazione @steveax è una funzionalità davvero interessante, ma posso ' t avvolgere la mia testa su come sarebbe di aiuto in questa situazione? – Shanimal

+0

Hai provato "@import" # {basePath} less.scss "'? –

risposta

9

Non è possibile utilizzare materiale condizionale per importazioni in SASS.

Provare a creare un'estensione Compass fuori dal progetto.

+4

Andrey è corretto, dal [Sass '@ import' docs] (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#import):" Le importazioni possono contenere # {} interpolazione, ma solo con alcune restrizioni Non è possibile importare dinamicamente un file Sass in base a una variabile, l'interpolazione è solo per le importazioni CSS. Come tale, funziona solo con le importazioni url(). " – steveax

6

Non è possibile utilizzare le variabili nei percorsi di importazione come già menzionato. Quello che è può do è utilizzare l'opzione -I o --load-path per specificare una directory da cui cercare.

sass --watch sass/:css/ --load-path ../../path/to/library/ 

Diciamo che avere una struttura di directory simile a questo:

themes 
    hotdog 
     _variables.scss 
    classic 
     _variables.scss 
styles.scss 

tuo styles.scss dovrebbe avere percorsi di importazione che sono relativi al carico-percorso fornito (s):

// note the import here doesn't contain themes, hotdog, or classic 
@import "variables"; 

@debug $foo; 

I tuoi comandi sarebbero simili a questo:

# hotdog 
sass styles.scss hotdog.css --load-path ./themes/hotdog/ 
# classic 
sass styles.scss classic.css --load-path ./themes/classic/ 

Vedere Sass options documentation per ulteriori informazioni.

Problemi correlati