gulpfile компилирует только последний файл - PullRequest
0 голосов
/ 21 марта 2019

У меня есть веб-сайт, который использует файлы LESS. Мой gulpfile.js выглядит так:

var gulp = require("gulp");
var fs = require("fs");
var less = require("gulp-less");
var watchLess = require('gulp-watch-less2');
var embedTemplates = require('gulp-angular-embed-templates');
var concat = require('gulp-concat');
var rename = require("gulp-rename");
var csso = require('gulp-csso');
var gutil = require('gulp-util');
var terser = require('gulp-terser');
var filesExist = require('files-exist');

function buildLess(arr, outputDir, outputName) {
    return gulp.src(filesExist(arr))
        .pipe(less().on('error', gutil.log))
        .pipe(rename(outputName + '.css'))
        .pipe(gulp.dest(outputDir))
        .on('error', gutil.log);
}

gulp.task('homepage', [], function () {
    return buildLess([
        "./css/homepage/reset.less",
        "./node_modules/components-font-awesome/css/font-awesome.min.css",
        "./node_modules/bootstrap/dist/css/bootstrap.css",
        "./css/bootstrap-callouts.less",
        "./css/homepage/global.less",
        "./css/fullpage-footer.less",
        "./node_modules/fullpage.js/dist/jquery.fullpage.min.css",
        "./css/Header.less",
        "./node_modules/angular-material/angular-material.css", // Only this exists on output file.
    ], './wwwroot/css/', 'homepage');
});

gulp.task('default', [
    'homepage'
], function () { });

Итак, все эти файлы css \ less должны быть преобразованы в один большой файл css по пути wwwroot/css/homepage.css. После проверки этого файла я обнаружил, что только последний файл находится в выходном файле.

Мало интересных точек:

  1. Если я изменю последний файл в списке, вывод файла будет изменен соответственно.
  2. Все файлы существуют наверняка (проверено с помощью filesExist(lst)).
  3. Ошибки не выводятся на экран.

Мои версии npm:

"devDependencies": {
    "gulp": "3.9.1",
    "gulp-less": "3.5.0",
    "gulp-watch-less": "^1.0.1",
    "gulp-watch-less2": "^2.0.4",
    "gulp-angular-embed-templates": "^2.3.0",
    "gulp-concat": "2.6.1",
    "gulp-rename": "1.4.0",
    "gulp-csso": "3.0.1",
    "gulp-terser": "1.1.7",
    "files-exist": "1.1.0"
}

Что я делаю не так?

1 Ответ

0 голосов
/ 21 марта 2019

Э-э ... только что нашел проблему - забыл конкатать вывод.

это правильный код:

function buildLess(arr, outputDir, outputName) {
    return gulp.src(filesExist(arr))
        .pipe(less().on('error', gutil.log))
        .pipe(concat(outputName + '.css'))
        .pipe(gulp.dest(outputDir))
        .on('error', gutil.log)
        .pipe(config.production ? csso() : gutil.noop())
        .pipe(config.production ? rename(outputName + '.min.css') : gutil.noop())
        .pipe(config.production ? gulp.dest(outputDir) : gutil.noop());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...