Pourquoi mettre devant le nom de fichier «_» ou «_» dans scss / css?

147

Pourquoi mettre _devant le nom du fichier en scss?

_filename.scss- Pourquoi en a-t-il besoin _?

Niko_D
la source

Réponses:

147

Le _ (trait de soulignement) est un partiel pour scss. Cela signifie que la feuille de style va être importée (@import) dans une feuille de style principale, à savoir styles.scss. L'avantage d'utiliser les partiels est que vous pouvez utiliser de nombreux fichiers pour organiser votre code et tout sera compilé sur un seul fichier.

Fabian Parra
la source
3
mais import '_file';et import '_file';fait la même chose non?
tom10271
20
@aokaddaoc semble que vous ayez écrit la même ligne de code :)
Amit
21
Oh merci d'avoir signalé mon erreur. "mais import '_file';et import 'file';fait la même chose non?"
tom10271
5
Si je structure mes fichiers de manière à n'envoyer qu'un seul fichier à mon compilateur / préprocesseur, pourquoi est-il important que mes fichiers soient précédés _? J'envisage de supprimer le trait de soulignement de mes noms de fichiers. Le fait qu'un fichier Sass soit partiel ou non (c'est-à-dire un morceau de code importable) doit dépendre de son emplacement dans l'architecture de votre projet, et non de la façon dont le fichier est nommé.
ESR
1
@ESR: D'accord, cette fonctionnalité semble un peu dépassée dans un environnement de développement Web moderne. Vous n'avez certainement pas besoin des _s si votre projet est structuré de manière raisonnable.
Chris Jaynes
55

Un fichier sass commençant par un trait de soulignement est un fichier partiel. C'est un bon moyen de séparer vos styles en sections logiques. Ces fichiers sont tous fusionnés lors de la compilation lorsque vous utilisez @import.

Dans le guide des langues Sass:

Vous pouvez créer des fichiers Sass partiels contenant de petits extraits de CSS que vous pouvez inclure dans d'autres fichiers Sass. C'est un excellent moyen de modulariser votre CSS et de faciliter la maintenance. Un partiel est simplement un fichier Sass nommé avec un trait de soulignement en tête. Vous pouvez lui donner un nom comme _partial.scss. Le trait de soulignement fait savoir à Sass que le fichier n'est qu'un fichier partiel et qu'il ne doit pas être généré dans un fichier CSS. Les partiels Sass sont utilisés avec la directive @import.

http://sass-lang.com/guide

cameronjonesweb
la source
14

Lorsque vous incluez "_" devant le nom du fichier, il ne sera pas généré dans CSS à moins que vous ne l'importiez dans un autre fichier sass qui n'est pas partiel.

supposons que la structure de vos dossiers ressemble à ceci

/scss
 style.scss
 _list.scss
/css

si vous exécutez la commande

sass --watch scss:css

seuls les fichiers style.css et style.css.map seront créés, le compilateur sass omettra _list.scss sans convertir son contenu en fichier CSS.

/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map

la seule façon d'utiliser des partiels est de les importer dans un autre fichier .scss avec

@import 'list.scss';

si vous supprimez le '_' devant _list.scss, le résultat de la commande sera

/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map

Le but principal de l'utilisation de partiels est de décomposer notre code CSS en plusieurs morceaux plus faciles à maintenir. J'espère que cela t'aides. Merci.

dmcshehan
la source
3
C'est la bonne réponse. Mais vous n'avez pas non plus évoqué le cas particulier de _index.scss: sass-lang.com/documentation/at-rules/import#index-files
tiffon
11

Les fichiers avec _ (trait de soulignement) sont ignorés par le compilateur. Cependant, tous ces fichiers sont importés dans un seul fichier SCSS principal (c'est-à-dire styles.scss) qui est en fait le fichier qui est compilé (il n'a pas de _ (trait de soulignement) dans son nom)

Le but final est de ne compiler qu'un seul fichier SCSS, et de n'avoir qu'un seul fichier CSS à la suite de cela, ce qui présente divers avantages.

Tahi Reu
la source