2016-09-22 2 views
1

J'aimerais que le fichier css produit par le compilateur de moins contienne une directive @import au début du fichier.Est-il possible de dire à less-css/gulp-less de laisser une règle @import telle quelle?

I.e. étant donné ce fichier moins:

@import "external.css" /* this import directive should be left as is */ 
@import "globals.less" 
a { color: @linkColor; } /* defined in globals.less */ 

le fichier CSS résultant devrait ressembler à ceci:

@import "external.css" 
a { color: #00a; } 

Il semble qu'aucun des différents options de la directive moins d'importation aide à la production de ce. Est-ce qu'il y a un autre moyen?


Mise à jour: J'utilise gulp-less pour compiler les fichiers moins. Il pourrait être un problème avec ce paquet et non avec moins lui-même (@import (css) "external.css"; ne donne pas le résultat désiré).

+0

Quel est le problème avec l'importation de 'external.css' donnant la sortie sans traitement LESS? –

+0

Lire le [manuel: '@import" foo.css "; // instruction laissée en place, as-is'] (http://lesscss.org/features/#import-directives-feature#import-directives-feature-file-extensions), ne devrait pas "@import" external. css "' déjà être * laissé tel quel *? Peut-être que c'est un peu difficile en ce qui concerne la fermeture ';'? – Yoshi

+1

@Yoshi: C'est très compliqué en ce qui concerne la fermeture ';' mais dans ce cas, cela donnerait une erreur de syntaxe lors de la compilation. Lorsque le mot-clé 'css' est utilisé, il laisse l'instruction importée telle quelle (à partir de la version 1.4). – Harry

Répondre

1

Comme seven-phases-max devinée (dans les commentaires), cette question n'a pas été causé par gulp-less, mais par le css-minifier (gulp-clean-css) qui a couru après la gulp compilation. L'utilisation des options correctes de nettoyage en ligne (processImport: false) permet de résoudre le problème.

+0

Ah ok, c'est un plugin similaire à la gulp-cssimport que j'ai lié dans mon commentaire plus tôt. Bon que vous avez trouvé la raison. – Harry

3

Mise à jour: Il ne semble pas être un problème engouffreur-moins (ou une autre bibliothèque de la chaîne), car le code en question si la déclaration en l'état @import en fait la sortie même sans utiliser l'option (css). The Less compiler seems to be capable of reading the file extension and if it is css then it just leaves the @import directive as-is. Donc, cela ne devrait certainement pas être un problème de moins de compilateur.


Oui, essayez d'utiliser le mot-clé css comme @import (css) "external.css";. Lorsque ce mot-clé est utilisé, le compilateur Less affichera l'instruction d'importation telle quelle.

@import (css) "external.css"; 
@import "globals.less"; 
a { 
    color: @linkColor; 
} 

pourrait compiler à

@import "external.css"; 
a { 
    color: #00a; 
} 
+0

Mais cela produira le code dans 'external.css 'produira" tel quel ", mais ne pas laisser la phrase' @ import' –

+0

Désolé, je ne vous comprends pas @MarcosP rezGude. S'il vous plaît essayez à lesscss.org :) – Harry

+0

Vous avez raison, je devine que le compilateur inclurait le code interne sur 'external.css' dans le résultat final. Mais c'est bon. Merci :) –