web-dev-qa-db-fra.com

Est-ce une mauvaise pratique de remplacer MOINS les variables?

J'utilise Twitter Bootstrap sur un projet en ce moment, y compris les fichiers LESS et la compilation avec du code LESS supplémentaire que nous avons écrit.

La dernière version a signifié que nous devons remplacer certaines des variables Bootstrap MOINS. Une option ici était de conserver une copie modifiée de Bootstrap que nous corrigeons sur chaque Libération.

Mais je note qu'il est possible de remplacer une variable définie dans un @import MOINS fichier en redéclarant la variable après l'instruction import.

Par exemple.:

@import "Twitter-bootstrap/bootstrap.less";
// Restore base font size to pre 2.1.1 defaults
@baseFontSize:          13px;
// Add some custom LESS code here

Est-ce une mauvaise pratique? Est-ce un artefact du fonctionnement du compilateur LESS, ou une partie de celui-ci? Je n'ai pas pu trouver beaucoup d'informations à ce sujet, même si j'ai trouvé les deux références suivantes:

En raison d'un bogue dans le compilateur Less, vous pouvez remplacer la valeur "constante" d'une variable en la modifiant après sa déclaration initiale.

http://rubysource.com/how-to-customize-Twitter-bootstrap%E2%80%99s-design-in-a-Rails-app

et

Personnalisez les colonnes et les gouttières en remplaçant ces trois variables (après que l'importation grid.less a été déclarée).

http://semantic.gs/

Le site LESS lui-même dit que les variables sont des "constantes":

http://lesscss.org/

Notez que les variables dans LESS sont en fait des "constantes" dans la mesure où elles ne peuvent être définies qu'une seule fois.

Mais alors je vois d'autres sites utiliser cette approche .. C'est certainement plus facile que de maintenir une branche de fournisseur et semble fonctionner correctement avec less.js.

J'apprécierais si vous pensez que c'est une mauvaise chose à faire ou non!

40
sync

D'accord! L'un des problèmes ci-dessus a conduit à une discussion sur le comportement prévu, et il s'avère que remplacer les variables MOINS est correct.

Vos déclarations se remplaceront mutuellement dans la même portée en CSS; Il en va de même pour MOINS.

https://github.com/cloudhead/less.js/issues/297

Comme en CSS, la substitution au sein d'une portée est un moyen prévu d'utiliser MOINS.

46
sync

C'est bon!

Je crée généralement un fichier moins avec des "composants" et des variables avec une valeur par défaut. Ensuite, j'importe ensuite un fichier avec les mêmes variables mais les valeurs "clients", en écrasant celles par défaut. De cette façon, je n'ai qu'à modifier certaines valeurs pour créer un nouveau design pour chaque client.

C'est ok et très utile.

6
kurroman