首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gulp connect和connect.reload

gulp connect和connect.reload
EN

Stack Overflow用户
提问于 2014-12-06 05:49:06
回答 2查看 6.6K关注 0票数 7

我正在尝试设置一个简单的服务器来测试一些d3.js的东西。我在tagtree.tv上看了一段录像带。我的代码与他的代码相匹配,但是当我对JS或SASS文件进行更改时,我无法重新加载index.html。

据我所知,我对gulp还不熟悉,但这是基于我的假设,即对connect.reload()的调用将重新加载任何浏览器正在查看其内容的内容。应该注意的是,livereload JS被插入到我的index.html文件中。

我的目录结构如下:

代码语言:javascript
复制
d3play
 -bower_components
 -dist
   -css
   -scripts
 - node_modules
 -sass
 -scripts
 gulpfile.js
 index.html
 package.json

我的gulpfile.js看起来像这样:

代码语言:javascript
复制
var gulp = require('gulp'),
  connect = require('gulp-connect'),
  traceur = require('gulp-traceur'),
  sass = require('gulp-ruby-sass');

gulp.task('connect', function(){
  connect.server({
    livereload: true
  });
});

gulp.task('reload', function(){
  gulp.src('./dist/**/*.*')
  .pipe(connect.reload());
});

gulp.task('sass', function(){
  gulp.src('./sass/*.scss')
  .pipe(sass())
  .pipe(gulp.dest('./dist/css'));
});

gulp.task('traceur', function(){
  gulp.src('./scripts/*.js')
  .pipe(traceur())
  .pipe(gulp.dest('./dist/scripts'));
});

gulp.task('watch', function(){
  gulp.watch(['./sass/*.scss'], ['sass']);
  gulp.watch(['./scripts/*.js'], ['traceur']);
  gulp.watch(['./dist/**/*.*'], ['reload']);
});

gulp.task('default', ['connect', 'sass', 'traceur', 'watch']);
EN

回答 2

Stack Overflow用户

发布于 2015-04-19 21:31:28

下面是一个基于connect服务器、connect-livereloadgulp-livereload插件的simple and livereload solution,可能会有所帮助:

代码语言:javascript
复制
var gulp = require('gulp');
var connect = require('connect');
var connectLivereload = require('connect-livereload');
var opn = require('opn');
var gulpLivereload = require('gulp-livereload');

var config = {
    rootDir: __dirname,
    servingPort: 8080,

    // the files you want to watch for changes for live reload
    filesToWatch: ['*.{html,css,js}', '!Gulpfile.js']
}

// The default task - called when you run `gulp` from CLI
gulp.task('default', ['watch', 'serve']);

gulp.task('watch', ['connect'], function () {
  gulpLivereload.listen();
  gulp.watch(config.filesToWatch, function(file) {
    gulp.src(file.path)
      .pipe(gulpLivereload());
  });
});

gulp.task('serve', ['connect'], function () {
  return opn('http://localhost:' + config.servingPort);
});

gulp.task('connect', function(){
  return connect()
    .use(connectLivereload())
    .use(connect.static(config.rootDir))
    .listen(config.servingPort);
});
票数 2
EN

Stack Overflow用户

发布于 2015-04-16 00:29:56

面对类似的情况,我正在尝试做

代码语言:javascript
复制
gulp.watch(['path/to/**/*.foo'], ['doTheReload'])

我通过直接在手表上将重新加载更改为流的方式使其正常工作,例如:

代码语言:javascript
复制
gulp.watch(['path/to/**/*.foo']).pipe(connect.reload());

在不知道更多的情况下,我猜测connect.reload()期望的流与gulp.src()提供的流有些不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27325207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档