source

딱 한 번만 보는 시계

lovecheck 2023. 9. 19. 21:15
반응형

딱 한 번만 보는 시계

꿀꺽꿀꺽watch첫 번째 변경 시 한 번만 실행됩니다.ubuntu 14에서 apache2에서 워드프레스를 실행하고 있으며 튜토리얼을 사용하고 있습니다.변화를 관찰하기 위해 꿀꺽꿀꺽 사용하는 방법을 설명합니다.처음 변경할 때는 정상적으로 작동합니다. 브라우저를 새로 고칩니다(http://localhost:3000).저는 꿀꺽 시계 설치가 처음이라 왜 한 번만 작동하는지 막막합니다.gulpfile.js는 다음과 같습니다.혹시라도 해명해야 할 사항이 있다면 다시 연락해 주시기 바랍니다.감사해요.

껐다가 다시 켜는 코딩 버전을 해봤습니다.스택 오버플로 등에 대한 이러한 유형의 문제에 대해 여러 가지 답변을 검토했습니다.

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()
}))

코드가 바뀔 때마다 브라우저 뷰와 기능이 업데이트 될 것으로 기대합니다.이는 '로 꿀꺽꿀꺽 삼키기 시작한 후에 한 번만 발생합니다.gulp watch'.

일반적으로 한 번만 실행되는 꿀꺽 작업은 한 번만 완료한 것으로 판단할 수 없으므로 꿀꺽 다시 실행하지 않음을 나타냅니다.

다음 코드로 변경:

// notice the "done" added below
gulp.task('watch', function(done) {
 browserSync.init({
    notify: false,
    proxy: settings.urlToPreview,
    ghostMode: false
  });

  //  I also added a callback function below, just within this one gulp.watch
  gulp.watch('./**/*.php', function(done) {
    browserSync.reload();
    done();
  });

  gulp.watch(settings.themeLocation + 'css/**/*.css', gulp.parallel('waitForStyles'));
  gulp.watch([settings.themeLocation + 'js/modules/*.js', settings.themeLocation + 'js/scripts.js'], 
             gulp.parallel('waitForScripts'));
  done();
});

다음과 같은 형태의 시계 문구를 사용할 것을 제안하는 것을 본 적도 있습니다.

gulp.watch('src/pages/**/*.html').on('change',gulp.series(pages, browser.reload));

일반적으로 사용되는 것 대신:

gulp.watch('src/pages/**/*.html', gulp.series(pages, browserSync.reload));

콜백 솔루션이 작동하지 않았다면 제안된 형태의watch.

스택 오버플로우에 대한 규정에 따라 마크의 답변이 제게 적합했다는 것을 말씀드리기에는 제 평판이 너무 낮아서 여기에 추가하겠습니다.우리는 내가 수강하고 있는 Udemy 코스에 추가했고 이것은 그 사이트의 많은 사용자들에게 걸림돌이 되었습니다.

다른 사람이 정답으로 표시해야 할 것입니다.아마 gulp.js는 이 사용 사례를 고려하여 수정되어야 할 것입니다만, 제가 사용하는 것은 처음입니다.고마워요 마크.

안녕하세요 여러분 저도 같은 상황입니다.저는 mamp pro에서 워드프레스를 실행하고 있습니다.HTML 변경에 대한 마크 작업의 답변이지만 여전히 CSsen JS를 위해 중지됩니다.

누군가가 도와줄 수 있다면 아주 좋을 것입니다.

나의 gulp 파일은:

 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(done) {
  browserSync.init({
    notify: false,
    proxy: settings.urlToPreview,
    ghostMode: false
  });

  gulp.watch('./**/*.php', function(done) {
    browserSync.reload();
    done();
  });
  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()
}))

언급URL : https://stackoverflow.com/questions/54064808/gulp-watch-only-runs-once

반응형