Gulp 4 работает в режиме разработки - PullRequest
0 голосов
/ 17 марта 2020

Я изменил Gulp3 на Gulp4. В моем gulpfile. js я создал задачу: если я делаю модификацию, я сразу вижу ее в режиме разработки, не создавая свой веб-сайт:

gulp.task('serve-php', function () {
  connect.server({
      port: 9001,
      base: 'app',
      open: false
  });
  var proxy = httpProxy.createProxyServer({});
  browserSync.init({
      notify: false,
      port  : 9000,
      server: {
          baseDir   : ['.tmp', 'app'],
          routes    : {
              '/node_modules': 'node_modules'

          },
          middleware: function (req, res, next) {
              var url = req.url;
              if (!url.match(/^\/(styles|fonts|node_modules)\//)) {
                  proxy.web(req, res, { target: 'http://127.0.0.1:9001' });
              } else {
                  next();
              }
          }
      }
  });
  gulp.watch([
      'app/*.html',
      'app/*.php',
      'app/**/*.php',
      'app/**/**/*.php',
      'app/scripts/**/*.js',
      'app/images/**/*',
      '.tmp/fonts/**/*'
  ]).on('change', function() {
    browserSync.reload();
  });
  gulp.watch('app/styles/**/*.scss', gulp.series('styles'));
  gulp.watch('app/fonts/**/*', gulp.series('fonts'));
 });

Но когда я запускаю gulp serve-php мой веб-сайт не имеет css и js, и я не знаю, как его настроить.

1 Ответ

0 голосов
/ 19 марта 2020

Вы не видите ни одного из скомпилированных ресурсов, потому что serve-php не выполняет задачи styles или fonts. Это только просмотр исходных файлов на предмет изменений. Поэтому не запускайте их, пока не внесены изменения.

Самое простое решение - создать еще одну задачу, которая сначала компилирует ваши ресурсы веб-интерфейса, а затем раскручивает ваш сервер и загружает browserSyn c.

Добавление следующей задачи должно заставить вас работать.

gulp.task('default', gulp.series( gulp.parallel('styles','fonts'), 'serve-php' ));

Просто запустите gulp, сначала будут скомпилированы ресурсы, затем сервер.

(Если у вас уже есть задание по умолчанию, вам нужно изменить имя этого задания)

Я полагаю, вам также нужно добавить задачу js в качестве параметра в вызов функции parallel, но это трудно определить без видя остальную часть вашего кода.

Я надеюсь, что это поможет вам двигаться по правильному пути!

...