与SASS一起使用Gulp + Browsersync,使用JS很慢

时间:2016-02-26 10:49:23

标签: gulp gulp-watch browser-sync

我觉得有点奇怪的是,当CSS改变时,几乎相同的gulp代码可以快速重新加载Browsersync(瞬时),但是当JS改变时很慢。

有人可以指出为什么我的JS重装需要大约2秒钟吗?

gulp.task('js', function() {
  browserify({
    entries: './src/index.jsx',
    extensions: ['.jsx', '.js', '.js.jsx'],
    debug: true
  })
  .transform(babelify, { presets: ["es2015", "react"] })
  .bundle().on('error', util.log)
  .pipe( source('bundle.js'))
  .pipe(gulp.dest('dist'))
  .pipe(browsersync.reload({stream:true}));
})

gulp.task('css', function () {
  sass_config = config.sass;
  var css_stream = gulp.src('stylesheets/theme-default.css');

  imports = [
    "font-awesome.min.css",
    "bootstrap/bootstrap.min.css",
    "react-big-calendar.css",
  ]

  for (var i=0; i < imports.length; i++) {
    css_stream = merge(css_stream, gulp.src("stylesheets/" + imports[i]));
  }

  sass_stream = gulp.src(sass_config.src)
    .pipe(sourcemaps.init())
    .pipe(sass(sass_config.settings))
    .on('error', util.log)
    .pipe(autoprefixer({ browsers: ['last 2 version'] }))
    .pipe(sourcemaps.write());

  return merge(css_stream, sass_stream)
    .pipe(concat('application.css'))
    .pipe(gulp.dest(sass_config.dest))
    .pipe(browsersync.reload({stream:true}));
});

gulp.task('watch-sass', ['browsersync'], function(callback) {
  watch("./stylesheets/**/*.{sass,scss}", function() { gulp.start('css'); });
});

gulp.task('watch-js', ['browsersync'], function(callback) {
  gulp.start('js');
  watch("./src/**", function() { gulp.start('js'); });
});

1 个答案:

答案 0 :(得分:0)

希望它有所帮助。

  

随着browserify项目开始扩展,将其慢慢捆绑的时间变得越来越长。虽然它可能在1秒后开始,但是您的项目可能需要等待30秒才能在特别大的项目上构建。

  1. https://github.com/gulpjs/gulp/blob/master/docs/recipes/fast-browserify-builds-with-watchify.md
  2. https://github.com/substack/node-browserify/issues/1004