Ich benutze Schluck für das Generieren von CSS von LESS. Es hat perfekt funktioniert, aber jetzt scheint das Skript die LESS-Dateien zu ignorieren. Hierschlucklose macht keine CSS-Dateien mehr
ist mein gulpfile.js
(es ist auf jeden Fall richtig, da ich es nicht in der letzten Zeit ändern haben):
// Include Gulp plugins
var gulp = require('gulp'),
less = require('gulp-less'),
watch = require('gulp-watch'),
prefix = require('gulp-autoprefixer'),
plumber = require('gulp-plumber'),
filter = require('gulp-filter'),
rename = require('gulp-rename'),
path = require('path')
;
// Compile LESS to CSS
gulp.task('build-less', function() {
const fileFilter = filter(['*', '!mixins.less', '!variables.less']);
gulp.src('./public/less/*.less') // path to less file
.pipe(fileFilter)
.pipe(plumber())
.pipe(less())
.pipe(gulp.dest('./public/css/')) // path to css directory
;
});
// Get vendors' code
gulp.task('build-vendors', function() {
gulp.src(['./public/components/bootstrap/less/theme.less', './public/components/bootstrap/less/bootstrap.less']) // path to less file
.pipe(plumber())
.pipe(less())
.pipe(rename(function (path) {
//rename all files except 'bootstrap.css'
if (path.basename + path.extname !== 'bootstrap.css') {
path.basename = 'bootstrap-' + path.basename;
}
}))
.pipe(gulp.dest('./public/css')) // path to css directory
;
});
// Run the build process
gulp.task('run', ['build-less', 'build-vendors']);
// Watch all LESS files, then run build-less
gulp.task('watch', function() {
gulp.watch('public/less/*.less', ['run'])
});
// Default will run the 'entry' task
gulp.task('default', ['watch', 'run']);
Und hier ist der Ruf und die Ausgabe:
$ gulp
[11:21:03] Using gulpfile /var/www/path/to/project/gulpfile.js
[11:21:03] Starting 'watch'...
[11:21:03] Finished 'watch' after 21 ms
[11:21:03] Starting 'build-less'...
[11:21:03] Finished 'build-less' after 13 ms
[11:21:03] Starting 'build-vendors'...
[11:21:03] Finished 'build-vendors' after 4.65 ms
[11:21:03] Starting 'run'...
[11:21:03] Finished 'run' after 5.37 μs
[11:21:03] Starting 'default'...
[11:21:03] Finished 'default' after 6.05 μs
Die whatch
funktioniert auch richtig - wenn ich meine LESS-Dateien bearbeiten ich eine Ausgabe wie diese:
[11:22:22] Starting 'build-less'...
[11:22:22] Finished 'build-less' after 1.96 ms
[11:22:22] Starting 'build-vendors'...
[11:22:22] Finished 'build-vendors' after 1.78 ms
[11:22:22] Starting 'run'...
[11:22:22] Finished 'run' after 5.08 μs
Ich habe auch versucht die build-less
direkt auszuführen:
$ gulp build-less
[11:24:06] Using gulpfile /var/www/path/to/project/gulpfile.js
[11:24:06] Starting 'build-less'...
[11:24:06] Finished 'build-less' after 13 ms
keine Fehler, aber auch keine Änderungen an den CSS-Dateien.
Was könnte schief gehen und wie man es beheben?
Vielen Dank! Es funktioniert wieder! Aber warum hat es früher funktioniert? Ich habe es tatsächlich mehrere Monate mit einer falschen Filterkonfiguration verwendet und hatte absolut keine Probleme damit. Irgendeine Idee? – automatix
Vor einer Weile gab es [eine rückwärtskompatible Änderung] (https://github.com/sindresorhus/gulp-filter/commit/b0728ab9b667f04493fad10cc32d9135f1ead997), die gemacht wurde, wie 'gulp-filter' Dateipfade abgleicht. Ich nehme an, dass das das Problem verursacht hat. –