简体   繁体   English

如何设置 gulp 文件以进行实时重新加载

[英]how to setup gulp file for live reload

I am trying to add a couple of gulp tasks.我正在尝试添加几个 gulp 任务。 I have a basic HTML site that I want to watch changes for and reload with updated changes.我有一个基本的 HTML 站点,我想查看更改并重新加载更新的更改。 I am trying to use livereload to listen and changed.我正在尝试使用 livereload 来收听和更改。 however when it reloads i get an error that the Port is already in use which makes sense.但是,当它重新加载时,我收到一个错误,表明该端口已在使用中,这是有道理的。 But I cannot find a solution.但我找不到解决方案。 First time to use Gulp so any tips on making what I have done better is welcome第一次使用 Gulp 所以欢迎任何关于让我做得更好的提示

    var gulp = require('gulp');
var livereload = require('gulp-livereload');
var rev = require('gulp-rev');
var clean = require('gulp-rimraf');
var runSequence = require('run-sequence').use(gulp);
var connect = require('gulp-connect');

gulp.task('build', function () {
  // by default, gulp would pick `assets/css` as the base,
  // so we need to set it explicitly:
  return gulp.src(['assets/css/*.css','assets/css/**/*.css', 'assets/js/*.js', 'assets/js/**/*.js', 'assets/js/**/**/*.js', 'assets/img/**/*.jpg', 'assets/img/**/*.png'], { base: 'assets' })
    .pipe(gulp.dest('build/assets'))  // copy original assets to build dir
    .pipe(rev())
    .pipe(gulp.dest('build/assets'))  // write rev'd assets to build dir
    .pipe(rev.manifest())
    .pipe(gulp.dest('build/assets')); // write manifest to build dir
});

gulp.task('copy', function () {
  gulp.src('index.html')
    .pipe(gulp.dest('build'));
  gulp.src('assets/fonts/*.*')
    .pipe(gulp.dest('build/assets/fonts'));
  gulp.src('assets/fonts/revicons/*.*')
    .pipe(gulp.dest('build/assets/fonts/revicons'));
});

gulp.task('clean', [], function() {
  return gulp.src("build/*", { read: false }).pipe(clean());
});

gulp.task('watch', function () {
  livereload.listen(35729, function(err) {
    if(err) return console.log(err);
  })
  gulp.watch(['index.html', 'assets/css/*.css','assets/css/**/*.css', 'assets/js/*.js', 'assets/js/**/*.js', 'assets/js/**/**/*.js', 'assets/img/**/*.jpg', 'assets/img/**/*.png'], [], function (e) {
    livereload.changed(e.path, 35729)
  });
});

gulp.task('connect', function() {
  connect.server({
    host: '0.0.0.0',
    root: 'build',
    port: 8000,
    livereload: true
  });
});

gulp.task('default', function() {
  runSequence(
    'dist',
    ['connect', 'watch']
  );
});

gulp.task('dist', ['clean'], function () {
  gulp.start('build');
  gulp.start('copy');
});

You may want to check on your host if any process has been running on port - 35729. You can kill that process and try to rerun this application.您可能需要检查您的主机是否有任何进程在端口 - 35729 上运行。您可以终止该进程并尝试重新运行此应用程序。 Find and kill process 查找并杀死进程

or或者

you can try with different port number than 35729 in your code.您可以在代码中尝试使用不同于 35729 的端口号。

Hope this would help.希望这会有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM