Gulp Browsersyn c не работает для скриптов. js файл - PullRequest
1 голос
/ 04 апреля 2020

Я новичок в Gulp watch и сталкиваюсь с проблемой Browsersyn c, которая обновляется только в первый раз, только когда я запускаю команду "gulp watch", и она работает только для HTML, CSS файлы, но не для скриптов. js файлы. Я внес это изменение в файл glop-watcher / index *

        function onChange() {
          console.log("onChange running: ", running); // custom changing
        if (running) {
          if (opt.queue) {
            queued = true;
          }
          // custom changing
          setTimeout(() => {
         runComplete({msg: "custom code is working"});
            }, 2000);
          return;
       }

, теперь он обновил файл HTML, CSS, но все еще не работает для скриптов. js Файл вообще, даже если refre sh вручную. Пожалуйста, помогите Вот мой gulpfile. js file

var gulp = require('gulp'),
settings = require('./settings'),
webpack = require('webpack'),
browserSync = require('browser-sync').create(),
postcss = require('gulp-postcss'),
rgba = require('postcss-hexrgba'),
autoprefixer = require('autoprefixer'),
cssvars = require('postcss-simple-vars'),
nested = require('postcss-nested'),
cssImport = require('postcss-import'),
mixins = require('postcss-mixins'),
colorFunctions = require('postcss-color-function');

gulp.task('styles', function() {
  return gulp.src(settings.themeLocation + 'css/style.css')
    .pipe(postcss([cssImport, mixins, cssvars, nested, rgba, colorFunctions, autoprefixer]))
    .on('error', (error) => console.log(error.toString()))
    .pipe(gulp.dest(settings.themeLocation));
});

gulp.task('scripts', function(callback) {
  webpack(require('./webpack.config.js'), function(err, stats) {
    if (err) {
      console.log(err.toString());
    }

    console.log(stats.toString());
    callback();
  });
});

gulp.task('watch', function() {
  browserSync.init({
    notify: false,
    proxy: settings.urlToPreview,
    ghostMode: false
  });

  gulp.watch('./**/*.php', function() {
    browserSync.reload();
  });
  gulp.watch(settings.themeLocation + 'css/**/*.css', gulp.parallel('waitForStyles'));
  gulp.watch([settings.themeLocation + 'js/modules/*.js', settings.themeLocation + 'js/scripts.js'], gulp.parallel('waitForScripts'));
});

gulp.task('waitForStyles', gulp.series('styles', function() {
  return gulp.src(settings.themeLocation + 'style.css')
    .pipe(browserSync.stream());
}))

gulp.task('waitForScripts', gulp.series('scripts', function(cb) {
  browserSync.reload();
  cb()
}))

1 Ответ

0 голосов
/ 19 апреля 2020

Наконец, после 2 недель бурения в глотке я тоже нашел проблему и решение.

Вот путь моих. js файлов, которые глоток просматривает

". \ myProject \ wp-content \ themes \ myProject-theme \ js"

, но для gulp watch путь должен быть таким:

"./ wp-content / themes / myProject-theme / js /*.js "

Не включает имя основной папки / root имя папки. В моем случае папка root, в которой хранятся все мои wordpress-файлы, называется «myProject», и я по ошибке написал ее в gulp path, что меня очень беспокоит.

Так что будьте уверены в своих путях, а также добавьте это в onChange () функция файла glop-watcher / index, который находится в папке node_modules.

 function onChange() {
      console.log("onChange running: ", running);
    if (running) {
      if (opt.queue) {
        queued = true;
      }
      // Add this code
      setTimeout(() => {
     runComplete({msg: "custom code is working"});
        }, 2000);
      return;
   }
...