1

我试图了解如何将 gulp 与这些有用且流行的插件一起使用。我有什么:

  • 在localhost:8000上运行 go(lang) 服务器
  • app文件夹下的静态/本地html文件,服务器使用这些文件来形成页面
  • 同目录下的scss文件,转换成css后自动加前缀

这是我的 gulpfile.js:

var gulp = require('gulp'),
    sass = require('gulp-sass'),
    watch = require('gulp-watch'),
    autoprefixer = require('gulp-autoprefixer'),
    livereload = require('gulp-livereload');

// "./" - it's "app" directory
gulp.task('default', function() {
    return gulp.src('./*.scss')
        .pipe(watch('./*.scss'))
        .pipe(sass())
        .pipe(autoprefixer('> 5%'))
        .pipe(gulp.dest('./'));
});

所以我需要什么:

  • 观看 html、css/scss 文件以进行更改并在localhost:8000上重新加载(chrome 的打开选项卡)
  • 如果不需要使用它会很棒:
    • livereload chrome插件
    • expressjs 框架
  • 如果它像没有服务器的文件一样直接打开,则重新加载 html 页面

我读过可以通过使用gulp-embedlr和gulp -webserver来实现这一点。如果是这样,该怎么做?

4

1 回答 1

1

好的,我发现最好的解决方案是使用 Gulp + BrowserSync!这是一个很好的解决方案。

这是我的gulpfile.js的代码:

var gulp = require('gulp'),
    sourcemaps = require('gulp-sourcemaps'),
    sass = require('gulp-sass'),
    watch = require('gulp-watch'),
    autoprefixer = require('gulp-autoprefixer'),
    browserSync = require('browser-sync'),
    reload = browserSync.reload;

gulp.task('browserSync', function() {
    browserSync({
        //logConnections: false,
        //logFileChanges: false,
        notify: false,
        open: false,
        server: {
            baseDir: "./"
        }
    });
});

gulp.task('sass', function() {
    return gulp.src('./css/*.scss')
        .pipe(sourcemaps.init())
            .pipe(sass())
        .pipe(autoprefixer('> 5%'))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./css'))
        .pipe(reload({stream:true}));
});

gulp.task('watch', function() {
    gulp.watch('./css/*.scss', ['sass']);
    gulp.watch('./*.html', reload);
});

gulp.task('default', ['watch', 'sass', 'browserSync']);

解释上面的代码是没有意义的。只需阅读以下内容:http ://www.browsersync.io/docs/gulp/

于 2015-02-01T18:51:00.037 回答