2015-07-09 12 views
23

E 'necessario avere un file parziale .scss che inizi con un trattino basso? La documentazione afferma che un partial dovrebbe iniziare con un carattere di sottolineatura, perché altrimenti il ​​file verrebbe compilato in un file CSS.Underscore nel file parziale Sass

Tuttavia, ho notato che gulp-sass compila i file senza un trattino basso in un file CSS completo.

risposta

39

1. partial deve iniziare con un carattere di sottolineatura, se non si vuole loro di essere generati in un file css.

2. Un file scss può importare un altro file senza un trattino di sottolineatura e comunque compilare correttamente.

Prendete questo esempio:

sass 
    +-- base 
    | +-- _normalize.scss 
    +-- components 
    | +-- site-header.scss 
    +-- utilities  
    | +-- _icons.scss 
    +-- site.scss 

Qui possiamo vedere che site-header.scss e site.scss non hanno sottolineatura. Se eseguivo un task gulp per compilare qualcosa all'interno della cartella sass, venivano emessi due file.

site-header.css 
site.css 

Non vogliamo generare site-header.css ma perché abbiamo omesso il carattere di sottolineatura il compilatore ignora il file con un carattere di sottolineatura e genera un file css per esso.

site-header.scss può ancora essere fatto riferimento in site.scss con @import

@import 'components\site-header'; 

Ciò comporterà lo stesso risultato se esso è preceduto da una sottolineatura o meno.

+0

Se si importa un file Sass senza un carattere di sottolineatura anteposto in un altro file Sass, anche senza un carattere di sottolineatura anteposto, verrà generato un solo file CSS, quindi la frase 'Partials deve iniziare con un trattino basso se non si desidera loro non possono essere generati in un file css. Non è proprio vero - posso avere partial che non inizieranno con un underscore che non verrebbe generato in un file CSS. Dipende da come spedisci i tuoi file al tuo compilatore, giusto? –