2016-09-27 2 views
0

J'utilise gulp uncss. Ceci est mon code de tâche:gulp uncss de manière inattendue supprimant certaines classes "ignorées"

gulp.task('uncss',() => { 
    return gulp.src($uncss.src) 
    .pipe(uncss({ 
     html: JSON.parse(require('fs').readFileSync('./sitemap.json', 'utf-8')), 
     ignore: [/\.no-\w+/g, /\.is-\w+/g, /\.plyr\w+/g, /\.lazy\w+/g, /\.\w+\s?\.is-\w+/g] 
    })) 
    // .pipe(cssnano()) 
    .on('error', handleErrors) 
    .pipe(gulp.dest($uncss.dest)) 
}); 

La ligne suivante

.is-menu-open .menu__btn span:before, .is-menu-open .menu__btn span:after { 
    background-color: #000; 
} 

est compilé comme, une fois que j'ai couru le code par la tâche engouffreur ci-dessus. N'importe quelles pensées, mes compétences regex sont un peu ce qui manque! Essentiellement, je dois ignorer toutes les classes .is- n'importe où dans le sélecteur.

+0

J'ai un sentiment 'uncss' est ne rattrapent pas l'indicateur global des regexs, comme'/\. Est- \ w +/g' devrait rattraper cela. Est-ce que spécifier la classe entière '.is-menu-open' fonctionne? Aussi, serait en ligne ignorant (sur le CSS) de travail pour vous? comme suit: '/ * uncss: ignore * /' – HNeiva

+0

Je testais les expressions sur https://regex101.com/ et ils correspondaient comme prévu. Je ne connaissais pas '/ * uncss: ignore * /', je vais donner un tourbillon .. Merci – magicspon

Répondre

1

Selon documentation:

expressions régulières pour les ignorer et les options de ignoreSheets doivent être enveloppés dans des guillemets.

{"ignore": [ ".unused", "/^#js/" ]}

+0

L'exemple que vous avez fourni est seulement si vous utilisez l'option 'uncssrc' pour charger les options du fichier json. Ce n'est pas le cas si vous utilisez l'option 'ignore'. – ivn