Gulp 大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口

Gulp 大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口,gulp,jekyll,browser-sync,gulp-sass,Gulp,Jekyll,Browser Sync,Gulp Sass,我不确定问题是否出在浏览器同步上,但这是我最好的选择。我的问题是我第一次使用gulp自动化我的工作流程。当我“吞咽东西”时,它运行时会打开一个包含我项目的新网页,但当我更改SASS文件中的任何内容时,它不会更新它,即使我按了刷新键,刷新它的唯一方法就是重新吞咽所有内容 我已经更新了所有的附件。我也在用杰基尔。还有一些其他的插件 这是我的gulpfile.js: var gulp = require('gulp'), browserSync = require(

我不确定问题是否出在浏览器同步上,但这是我最好的选择。我的问题是我第一次使用gulp自动化我的工作流程。当我“吞咽东西”时,它运行时会打开一个包含我项目的新网页,但当我更改SASS文件中的任何内容时,它不会更新它,即使我按了刷新键,刷新它的唯一方法就是重新吞咽所有内容

我已经更新了所有的附件。我也在用杰基尔。还有一些其他的插件

这是我的gulpfile.js:

var gulp               = require('gulp'),
    browserSync = require('browser-sync'),
    sass                   = require('gulp-sass'),
    prefix                = require('gulp-autoprefixer'),
    minifycss        = require('gulp-minify-css'),
    jshint                = require('gulp-jshint'),
    concat              = require('gulp-concat'),
    uglify      = require('gulp-uglify'),
    rename      = require('gulp-rename'),
    cp          = require('child_process'),
    jade        = require('gulp-jade'),
    bourbon     = require('bourbon').includePaths;

var messages = {
    jekyllBuild: '<span style="color: grey">Running:</span> $ jekyll build'
};


/**
 * Build the Jekyll Site
 */
gulp.task('jekyll-build', function (done) {
    browserSync.notify(messages.jekyllBuild);
    var pl = process.platform === "win32" ? "jekyll.bat" : "jekyll";
    return cp.spawn(pl, ['build'], {stdio: 'inherit'})
        .on('close', done);
});


/**
 * Rebuild Jekyll & do page reload
 */
gulp.task('jekyll-rebuild', ['jekyll-build'], function () {
    browserSync.reload();
});


/**
 * Wait for jekyll-build, then launch the Server
 */
gulp.task('browser-sync', ['sass', 'js', 'jekyll-build'], function() {
    browserSync({
        server: {
            baseDir: '_site'
        },
        notify: false
    });
});


/**
 * Compile files from _scss into both _site/css (for live injecting) and site (for future jekyll builds)
 */
gulp.task('sass', function () {
    return gulp.src('assets/css/main.scss')
        .pipe(sass({
            includePaths: [bourbon],
            onError: browserSync.notify
        }).on('error', sass.logError))
        .pipe(prefix(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true }))
        .pipe(rename({suffix: '.min', prefix : ''}))
        .pipe(minifycss())
        .pipe(gulp.dest('assets/css'))
        .pipe(gulp.dest('_site/css'))
        .pipe(browserSync.reload({stream:true}));
});


/**
 * Compile Jade
 */
gulp.task('jade', function() {
    return gulp.src('_jadefiles/*.jade')
    .pipe(jade())
    .pipe(gulp.dest('_includes'));
});


/*
** JS Task
*/
gulp.task('js', function() {
  return gulp.src('assets/js/common.js')
    .pipe(jshint())
    .pipe(jshint.reporter('default'))
    .pipe(concat('common.js'))
    .pipe(gulp.dest('assets/js'))
    .pipe(rename({suffix: '.min'}))
    .pipe(uglify())
    .pipe(gulp.dest('assets/js'))
    .pipe(gulp.dest('_site/js'));
});


/**
 * Watch scss files for changes & recompile
 * Watch html/md files, run jekyll & reload BrowserSync
 */
gulp.task('watch', function () {
    gulp.watch('assets/js/**/*.js', ['js']).on("change", browserSync.reload);
    gulp.watch('assets/css/**', ['sass']);
    gulp.watch(['*.html', '_layouts/*.html', '_posts/*', '_includes/*'], ['jekyll-rebuild']);
    gulp.watch('_jadefiles/*.jade', ['jade']);
});


/**
 * Default task, running just `gulp` will compile the sass,
 * compile the jekyll site, launch BrowserSync & watch files.
 */
gulp.task('default', ['browser-sync', 'watch']);
var gulp=require('gulp'),
browserSync=require('browser-sync'),
sass=require('gulp-sass'),
前缀=require('gulp-autoprefixer'),
minifycss=require('gulp-minify-css'),
jshint=require('gulp-jshint'),
concat=require('gulp-concat'),
uglify=需要('gulp-uglify'),
重命名=需要('gulp-rename'),
cp=要求(“子流程”),
jade=需要('gulp-jade'),
波旁威士忌=必需的(“波旁威士忌”)。包括路径;
变量消息={
jekyllBuild:'正在运行:$jekyllBuild'
};
/**
*建立Jekyll站点
*/
吞咽任务('jekyll-build',函数(完成){
browserSync.notify(messages.jekyllBuild);
var pl=process.platform==“win32”?“jekyll.bat”:“jekyll”;
返回cp.spawn(pl,['build'],{stdio:'inherit'})
.在(‘关闭’,完成)时;
});
/**
*重建Jekyll&重新加载页面
*/
gulp.task('jekyll-rebuild',['jekyll-build'],函数(){
重新加载();
});
/**
*等待jekyll构建,然后启动服务器
*/
gulp.task('browser-sync',['sass','js','jekyll build',function()){
浏览器同步({
服务器:{
baseDir:“\u站点”
},
通知:假
});
});
/**
*将文件从_scss编译到_site/css(用于实时注入)和site(用于将来的jekyll构建)
*/
吞咽任务('sass',函数(){
return gulp.src('assets/css/main.scss')
.管道(sass)({
包括路径:[波旁威士忌],
OneError:browserSync.notify
}).on('error',sass.logError))
.pipe(前缀(['last 15 versions','>1%,'ie 8','ie 7'],{cascade:true}))
.pipe(重命名({后缀:'.min',前缀:'}))
.pipe(minifycss())
.pipe(吞咽目的地(“资产/css”))
.管道(大口目的地(“现场/css”))
.pipe(browserSync.reload({stream:true}));
});
/**
*编玉
*/
吞咽任务('jade',函数(){
返回一口src(“Jandirebles/*.jade”)
.pipe(jade())
.管道(吞咽目的地(“包括”);
});
/*
**JS任务
*/
gulp.task('js',function(){
return gulp.src('assets/js/common.js')
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat('common.js'))
.pipe(吞咽目的地(“资产/js”))
.pipe(重命名({后缀:'.min'}))
.管道(丑()
.pipe(吞咽目的地(“资产/js”))
.管道(大口目的地(“U现场/js”);
});
/**
*查看scss文件的更改和重新编译
*观看html/md文件,运行jekyll并重新加载BrowserSync
*/
吞咽任务('watch',函数(){
gulp.watch('assets/js/***.js',['js'])。打开(“change”,browserSync.reload);
狼吞虎咽的手表('assets/css/**',['sass']);
gulp.watch(['*.html'、''.\layouts/*.html'、'.\posts/*'、'.\u includes/*']、['jekyll-rebuild']);
狼吞虎咽的手表(“jadistribles/*.jade”,“jade”);
});
/**
*默认任务,只运行'gulp'将编译sass,
*编译jekyll站点,启动BrowserSync&watch文件。
*/
gulp.task('default',['browser-sync','watch']);

您的sass文件在哪里

底部的那一位——“手表”可能就是问题所在

我认为您需要添加sass文件夹所在的位置。假设它是_sass,那么也许将它添加到第三次吞咽中。像这样的观察线会起作用


gulp.watch(['*.html'、''u sass/*'、''u layouts/*.html'、''u posts/*'、''u includes/*']、['jekyll-rebuild'])

您的sass文件在哪里

底部的那一位——“手表”可能就是问题所在

我认为您需要添加sass文件夹所在的位置。假设它是_sass,那么也许将它添加到第三次吞咽中。像这样的观察线会起作用


gulp.watch(['*.html'、''u sass/*'、''u layouts/*.html'、''u posts/*'、''u includes/*']、['jekyll-rebuild'])

此代码设置您的手表。但只有js更改设置为通知浏览器同步:

gulp.task('watch', function () {
    gulp.watch('assets/js/**/*.js', ['js']).on("change", browserSync.reload);
    gulp.watch('assets/css/**', ['sass']);
    gulp.watch(['*.html', '_layouts/*.html', '_posts/*', '_includes/*'], ['jekyll-rebuild']);
    gulp.watch('_jadefiles/*.jade', ['jade']);
});
告诉gulp watch在sass更改时通知浏览器同步:

gulp.watch('assets/css/**/*.sass', ['sass']).on("change", browserSync.reload);
但您确实希望对sass更改运行“sass”,然后就css更改通知browserSync:

gulp.watch('assets/css/**/*.css').on("change", browserSync.reload);
gulp.watch('assets/css/**/*.sass', ['sass'])

此代码设置您的手表。但只有js更改设置为通知浏览器同步:

gulp.task('watch', function () {
    gulp.watch('assets/js/**/*.js', ['js']).on("change", browserSync.reload);
    gulp.watch('assets/css/**', ['sass']);
    gulp.watch(['*.html', '_layouts/*.html', '_posts/*', '_includes/*'], ['jekyll-rebuild']);
    gulp.watch('_jadefiles/*.jade', ['jade']);
});
告诉gulp watch在sass更改时通知浏览器同步:

gulp.watch('assets/css/**/*.sass', ['sass']).on("change", browserSync.reload);
但您确实希望对sass更改运行“sass”,然后就css更改通知browserSync:

gulp.watch('assets/css/**/*.css').on("change", browserSync.reload);
gulp.watch('assets/css/**/*.sass', ['sass'])

对于Jekyll,我认为当手表看到变化时,它需要进行Jekyll重建,而不是重新加载浏览器。如果在不重新生成的情况下重新加载浏览器,则浏览器将无法拾取站点文件夹中的更改。我认为js.on-change-sync是在浏览器同步注入了它的魔力之后重新加载浏览器。我可能大错特错,但这是我的理解。完全可能。我对杰基尔一无所知。如果这是直接的js/html/sass,那么这将是可能的解决方案之一。不知道哲基尔想要什么巫毒-对于Jekyll,我认为当手表看到变化时,它需要进行Jekyll重建,而不是重新加载浏览器。如果在不重新生成的情况下重新加载浏览器,则浏览器将无法拾取站点文件夹中的更改。我认为js.on-change-sync是在浏览器同步注入了它的魔力之后重新加载浏览器。我可能大错特错,但这是我的理解。完全可能。我对杰基尔一无所知。如果这是直接的js/html/sass,那么这将是可能的解决方案之一。不知道哲基尔想要什么巫毒-汉克斯,现在就去试试。以后再告诉你它是否管用。它确实管用,是吗