web-dev-qa-db-fra.com

Supprimer MOINS // commentaires sur la compilation

Est-il possible de configurer LESS pour supprimer "// comments" lors de la compilation via JS?

Je veux les supprimer du fichier less sorti.

26
bigdaveygeorge

Moins de commentaires sur une seule ligne // sont censés être silencieux, selon la documentation:

Les commentaires sur une seule ligne sont également valides dans LESS, mais ils sont "silencieux", ils n'apparaissent pas dans la sortie CSS compilée:

// Hi, I'm a silent comment, I won't show up in your CSS
.class { color: white }

Voir sur le site Web de LESS: http://lesscss.org/#-comments

-x flag fonctionne en ligne de commande pour produire du CSS minifié (qui supprimera les commentaires CSS), mais en aucun cas, la double barre oblique ne devrait apparaître sur css. Voir http://lesscss.org/#usage à la rubrique 'Utilisation de la ligne de commande'.

38
RaphaelDDL

Concernant l'utilisation de JS sans l'outil CLI, le les documents disent :

Vous pouvez passer quelques options au compilateur:

Malheureusement, ces options ne sont spécifiées nulle part. Vous devez savoir où chercher dans le code, qui est ici: https://github.com/less/less.js/blob/0c2c1b2ba3036c62be5fc4e6232d3c0493559764/lib/less/env.js

Les différentes options sont (au moment d'écrire ces lignes, à partir du blob lié ci-dessus):

var parseCopyProperties = [
    'paths',            // option - unmodified - paths to search for imports on
    'optimization',     // option - optimization level (for the chunker)
    'files',            // list of files that have been imported, used for import-once
    'contents',         // map - filename to contents of all the files
    'contentsIgnoredChars', // map - filename to lines at the begining of each file to ignore
    'relativeUrls',     // option - whether to adjust URL's to be relative
    'rootpath',         // option - rootpath to append to URL's
    'strictImports',    // option -
    'insecure',         // option - whether to allow imports from insecure ssl hosts
    'dumpLineNumbers',  // option - whether to dump line numbers
    'compress',         // option - whether to compress
    'processImports',   // option - whether to process imports. if false then imports will not be imported
    'syncImport',       // option - whether to import synchronously
    'javascriptEnabled',// option - whether JavaScript is enabled. if undefined, defaults to true
    'mime',             // browser only - mime type for sheet import
    'useFileCache',     // browser only - whether to use the per file session cache
    'currentFileInfo'   // information about the current file - for error reporting and importing and making urls relative etc.
];

et:

var evalCopyProperties = [
    'silent',         // whether to swallow errors and warnings
    'verbose',        // whether to log more activity
    'compress',       // whether to compress
    'yuicompress',    // whether to compress with the outside tool yui compressor
    'ieCompat',       // whether to enforce IE compatibility (IE8 data-uri)
    'strictMath',     // whether math has to be within parenthesis
    'strictUnits',    // whether units need to evaluate correctly
    'cleancss',       // whether to compress with clean-css
    'sourceMap',      // whether to output a source map
    'importMultiple', // whether we are currently importing multiple copies
    'urlArgs'         // whether to add args into url tokens
];

Ils sont également un peu documentés par les différents plugins Grunt et Gulp qui utilisent LESS via JS.

Donc, pour répondre à votre question, vous ne pouvez pas vraiment vous déshabiller /**/ commentaires sans utiliser compress. Ce qui fait aussi toutes sortes de choses.

7
Dmitry Minkovsky

Mise à jour 2015-juillet: lors de la tentative de -x comme les autres réponses l'ont suggéré, j'ai reçu cet avertissement:

L'option compress est obsolète. Nous vous recommandons d'utiliser un minifieur css dédié, par exemple voir less-plugin-clean-css.

Vous pouvez installer le plugin avec

npm install -g less-plugin-clean-css

Exécutez ensuite lessc avec le --clean-css argument.

6
Dan Dascalescu

Ajout du -x option de votre commande de compilation lessc réduira le CSS, ce qui devrait supprimer les commentaires. Dans le cas contraire, vous pouvez obtenir plus de contrôle sur les options de minification en utilisant le compresseur CSS YUI en ajoutant le --yui-compress option à votre commande de compilation, ce qui supprime définitivement les commentaires.

Comme Raphaël l'a dit dans sa réponse // les commentaires de style ne doivent de toute façon pas être présents dans le CSS compilé, donc votre question n'a pas beaucoup de sens en premier lieu.

Toutes ces informations sont clairement indiquées sur le MOINS page d'accueil/documentation , alors vous devriez peut-être simplement le lire en premier.

2
Ennui