Часы глотка бегут один раз, потом не получается - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть проект, использующий Gulp и SASS, и когда я запускаю gulp watch, он успешно запускает первое изменение без каких-либо проблем.

Проблема возникает, когда я делаю какие-либо дальнейшие изменения - они, кажется, не регистрируются икажутся проигнорированными.

Вот мой код Gulpfile.js:

var theme_name = 'project-theme';

var gulp    = require('gulp'),
    cleanCSS = require('gulp-clean-css'),
    sass    = require('gulp-sass'),
    concat  = require('gulp-concat'),
    uglify  = require('gulp-uglify'),
    rename  = require('gulp-rename');

var paths = {
  styles: {
    src: 'wp-content/themes/' + theme_name + '/gulp/sass/theme.scss',
    folder: 'wp-content/themes/' + theme_name + '/gulp/sass/*.scss',
    dest: 'wp-content/themes/' + theme_name + '/assets/css/'
  },
  scripts: {
    src: 'wp-content/themes/' + theme_name + '/gulp/jquery/*.js',
    dest: 'wp-content/themes/' + theme_name + '/assets/js/'
  }
};

gulp.task('styles', function() {
  return gulp
    .src(paths.styles.src, {
      sourcemaps: true
    })
    .pipe(sass())
    .pipe(cleanCSS())
    .pipe(rename({
      basename: 'main',
      suffix: '.min'
      }))
    .pipe(gulp.dest(paths.styles.dest));
});

gulp.task('scripts', function() {
  return gulp
    .src(paths.scripts.src, {
        sourcemaps: true
    })
    .pipe(uglify())
    .pipe(concat('main.min.js'))
    .pipe(gulp.dest(paths.scripts.dest));
});

gulp.task('watch', function() {
  gulp.watch(paths.scripts.src, gulp.series('scripts'));
  gulp.watch(paths.styles.folder, gulp.series('styles'));
});

gulp.task('default', gulp.parallel('styles', 'scripts', 'watch'));

Я смотрел на другие подобные вопросы о переполнении стека, и они не дали мне никакого успеха.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 08 апреля 2019

Я нашел решение. Теперь я понимаю, что Гулп не знает, что задание выполнено, поэтому игнорирует все дальнейшие изменения.

Чтобы исправить это, я изменил строки 48 и 49 на это:

gulp.watch(paths.styles.folder).on('change',gulp.series('styles'));
gulp.watch(paths.scripts.src).on('change', gulp.series('scripts'));

Все дополнительные изменения теперь зарегистрированы gulp watch.

Надеюсь, это поможет любому с подобной проблемой.

...