Как совместить эти два глоточных задания? - PullRequest
0 голосов
/ 18 марта 2019

Как лучше всего сочетать эти две задачи?Если это возможно.

Я думаю, что этот подход будет сложным и сложным, поэтому есть ли более разумный способ выполнить эти задачи?

Пожалуйста, посмотрите код для моих текущих двухглоток задач ниже.Вы должны увидеть мои входные файлы и желаемую выходную папку.Причина, по которой у меня сейчас две отдельные задачи, заключается в том, что есть другие папки / файлы, которые я не хочу компилировать (см. IncludePaths).

// A task that compiles index SCSS to CSS
gulp.task('sass-index', function () {
    return gulp.src('resources/scss/index.scss')
        .pipe(sass({
            precision: 10,
            includePaths: [
                'resources/scss/variables',
                'resources/scss/mixins'
            ]
        }))
        .pipe(autoprefixer({
            browsers: [
                '> 1%',
                'last 2 Chrome major versions',
                'last 2 Firefox major versions',
                'last 2 Edge major versions',
                'last 2 Safari major versions',
                'ie 11',
                'last 3 Android major versions',
                'last 3 ChromeAndroid major versions',
                'last 2 iOS major versions'
            ]
        }))
        .pipe(uglifycss())
        .pipe(gulp.dest('assets/css'))
        .pipe(browserSync.stream());
});

// A task that compiles template SCSS to CSS
gulp.task('sass-templates', function () {
    return gulp.src('resources/scss/templates/*.scss')
        .pipe(sass({
            precision: 10,
            includePaths: [
                'resources/scss/variables',
                'resources/scss/mixins'
            ]
        }))
        .pipe(autoprefixer({
            browsers: [
                '> 1%',
                'last 2 Chrome major versions',
                'last 2 Firefox major versions',
                'last 2 Edge major versions',
                'last 2 Safari major versions',
                'ie 11',
                'last 3 Android major versions',
                'last 3 ChromeAndroid major versions',
                'last 2 iOS major versions'
            ]
        }))
        .pipe(uglifycss())
        .pipe(gulp.dest('assets/css/templates'))
        .pipe(browserSync.stream());
});

Ответы [ 2 ]

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

Попробуйте с этим кодом:

const gulpSrc = "resources/scss/",
  gulpDest = "assets/css/",
  filePaths = [
    [
        gulpSrc + "index.scss", 
        gulpDest
    ],
    [
        gulpSrc + "templates/*.scss", 
        gulpDest, gulpDest + "/templates"
    ]
  ]
  ;

gulp.task('sass', function (done) {
    filePaths.map(function (file) {
        return gulp.src(file[0])
            .pipe(sass({
                precision: 10,
                includePaths: [
                    'resources/scss/variables',
                    'resources/scss/mixins'
                ]
            }))
            .pipe(autoprefixer({
                browsers: [
                    '> 1%',
                    'last 2 Chrome major versions',
                    'last 2 Firefox major versions',
                    'last 2 Edge major versions',
                    'last 2 Safari major versions',
                    'ie 11',
                    'last 3 Android major versions',
                    'last 3 ChromeAndroid major versions',
                    'last 2 iOS major versions'
                ]
            }))
            .pipe(uglifycss())
            .pipe(gulp.dest(file[1]))
            .pipe(browserSync.stream());
    });
    done();
});
0 голосов
/ 18 марта 2019

Посмотрите на лентяй . С его помощью вы можете создать повторно используемую часть задачи gulp.

Непроверенные:

var sassTasks = lazypipe()
 .pipe(sass({
            precision: 10,
            includePaths: [
                'resources/scss/variables',
                'resources/scss/mixins'
            ]
        }))
        .pipe(autoprefixer({
            browsers: [
                '> 1%',
                'last 2 Chrome major versions',
                'last 2 Firefox major versions',
                'last 2 Edge major versions',
                'last 2 Safari major versions',
                'ie 11',
                'last 3 Android major versions',
                'last 3 ChromeAndroid major versions',
                'last 2 iOS major versions'
            ]
        }))
        .pipe(uglifycss());


gulp.task('sass-index', function () {
  return gulp.src('resources/scss/index.scss')
    .pipe(sassTasks())
    .pipe(gulp.dest('assets/css'))
    .pipe(browserSync.stream());
});

gulp.task('sass-templates', function () {
   return gulp.src('resources/scss/templates/*.scss')
     .pipe(sassTasks())
     .pipe(gulp.dest('assets/css/templates'))
     .pipe(browserSync.stream());
});
...