Bonjour à tous,

Je modifie mon message.
Après de longue recherche, j'en suis venu à reduir au maximum mon gulpfile.js à ça :

var gulp = require('gulp');
var uncss = require('gulp-uncss');
var concat = require('gulp-concat');
gulp.task('default', function () {
	return gulp.src('css/main.css')
		.pipe(concat('global.css'))
		.pipe(uncss({
			html: ['include/menu.php']
		}))
		.pipe(gulp.dest('css/'));
});


et je lance ma tache gulp
Je n'ai pas d'erreur, les urls sont bonnes.
Gulp va bien dans le fichier main.css mais me retourne que html et body. Toutes les autres classes ne sont pas affichée.
Auriez-vous une piste, car pour le coup je suis dépasser.

Il est censé comparer les classes et garder celle qui sont utilisé mais ce n'est pas le cas.
Pire, dans menu.php il n'y pas html et body.
C'est comme s'il ne visitait pas menu.php .

Peut-être un problème avec l'extention .php ?
L'url est bonne, alors je vois vraiment pas..

Bref, si vous avez des idées.... Smiley biggrin
Modifié par J_B (10 Oct 2015 - 19:10)
Je m'auto-répond. Apparemment les fichiers php posent problème.
Peut-être qu'un fix a été fait... je continue mes recherches...

Edit : J'ai resolu mon problème.
Les fichiers en .php pose problème parce qu'ils ne sont pas compilé.
Pour y parvenir, il faut donc passer par le localhost.

Voici le nouveau gulpfile :

var gulp = require('gulp');
var uncss = require('gulp-uncss');
var concat = require('gulp-concat');
gulp.task('default', function () {
	return gulp.src('css/main.css')
		.pipe(concat('global.css'))
		.pipe(uncss({
			html: ['http://localhost/include/menu.php']
		}))
		.pipe(gulp.dest('css/'));
});


Voilà, chez moi ça marche impeccable. Reste plus qu'à faire la même chose pour tous mes fichiers php
Modifié par J_B (10 Oct 2015 - 19:10)
Administrateur
Bonjour,

contrairement à d'autres outils travaillant en local, uncss travaille avec les pages HTML telles ques vues par un navigateur. Il faut donc bien les faire exécuter par un serveur, local ou pas.
Uncss charge chaque page dans un headless browser pour comparer l'ensemble des sélecteurs et déclarations chargées à celles vraiment utilisées dans chaque page. Ce navigateur est un vrai navigateur avec HTML5, CSS3, JS toussa mais pas de fenêtre visible.

À nous de connaître la liste complète des pages/gabarits sans quoi il va manquer des règles et déclarations, à nous de rajouter les classes conditionnelles à la .ie8 .ie9 .oldie si on en utilise encore ou celles de Kendo UI qui commencent par .k-safari ou .k-ff grumpf ou celles utilisant des classes uniquement ajoutées par un script JS après intervention de l'utilisateur (clic, survol, etc).
Modifié par Felipe (12 Oct 2015 - 10:19)
Merci Felipe pour ce complément d'information Smiley biggrin . C'est en effet ce que j'avais compris, en cherchant de mon côté. Et effectivement, il reste quand même du travail à faire à la mano derrière, comme tu l'as spécifié. Donc faire attention et bien contrôler l'ensemble du site avant la mise en ligne au risque d'être surpris.