【问题标题】:browser-sync gulp config浏览器同步 gulp 配置
【发布时间】:2016-03-25 20:05:33
【问题描述】:

我正在尝试改进我的 Gulp 配置以包括浏览器同步。我目前对我正在处理的每个站点(WordPress 站点)使用 MAMP Pro,并使用 local.domain.com

我想让browser-sync 使用此当前设置工作(使用 watch 时监视我的 SASS 文件并缩小 CSS)。

我似乎无法弄清楚如何让浏览器同步以使用我的 MAMP Pro 设置中的域。

// Include gulp
var gulp = require('gulp'); 

// Include Our Plugins
var jshint = require('gulp-jshint');
var sass = require('gulp-sass');
var cssnano = require('gulp-cssnano');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var uglifycss = require('gulp-uglifycss');

// Lint Task
gulp.task('lint', function() {
    return gulp.src('js/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});

// Compile Our Sass
gulp.task('sass', function() {
    return gulp.src('lib/themes/domain/styles/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('lib/themes/domain/'));
});

// Concatenate & Minify JS
gulp.task('scripts', function() {
    return gulp.src('js/*.js')
        .pipe(concat('all.js'))
        .pipe(gulp.dest('dist'))
        .pipe(rename('all.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('dist'));
});





gulp.task('uglify', function () {
  gulp.src('lib/themes/domain/style.css')
    .pipe(uglifycss({
      "max-line-len": 80
    }))
    .pipe(gulp.dest('lib/themes/domain/'));
});




// Watch Files For Changes
gulp.task('watch', function() {
    gulp.watch('js/*.js', ['lint', 'sass', 'scripts', 'uglify']);
    gulp.watch('lib/themes/domain/styles/*/*.scss', ['sass']);
    gulp.watch('lib/themes/domain/styles/*.scss', ['sass']);
    gulp.watch('lib/themes/domain/style.css', ['uglify']);
});

// Default Task
gulp.task('default', ['lint', 'sass', 'uglify', 'scripts', 'watch']);

【问题讨论】:

    标签: gulp browser-sync mamp-pro


    【解决方案1】:

    我不会为您编写代码,而是会向您展示我喜欢如何编写代码。我在一个单独的任务中运行我的浏览器同步,只需观察你的构建文件的变化。

    var browserSync = require('browser-sync').create();
    var urlPath = "your-url.com";
    
    gulp.task('browser-sync', function (cb) {
        browserSync.init({
            proxy: urlPath,
        }, function() {
            gulp.watch("Views/**/*.cshtml").on("change", browserSync.reload);
            gulp.watch('Assets/build/scripts/**/*.js').on('change', browserSync.reload);
            gulp.watch('Assets/build/styles/**/*.css').on('change', function () {
                gulp.src('Assets/build/styles/**/*.css')
                .pipe(browserSync.stream());
            });  
            cb();
        });
    });

    【讨论】:

    • 谢谢!我将在接下来的半小时内对此进行试验,并让您知道我的进展情况:)
    • 感谢您的帮助 - 它似乎对我很有用!我不得不稍微调整一下,让它寻找 sass 变化,缩小然后重新加载页面,但它似乎到目前为止工作正常!谢谢!有没有办法将 url 从 localhost:3000 更改为我正在处理的实际本地域?
    • 另外,我似乎无法让同一网络上的其他本地设备看到该站点。有没有办法做到这一点,或者我错过了什么? * 编辑实际上我解决了我没有用端口号输入IP。谢谢你!!!几个星期以来,我一直在玩弄这个工作。如果可以的话,我会 +1 你的答案,但我还没有足够的代表。
    • 但是,如果您能够就我关于重写域的其他问题提出建议,那么它不是 localhost:3000 而是与 WP Db 相同的 local.domain.dev 将非常方便
    • 很高兴能为您提供帮助。我一直在使用本地主机 url,但根据这个线程:github.com/BrowserSync/browser-sync/issues/646 这可能有效:打开:'external',主机:'domain.dev',代理:“domain.dev”,端口:8080,
    猜你喜欢
    • 2015-04-15
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2020-03-10
    • 2014-09-28
    • 2017-11-08
    • 1970-01-01
    相关资源
    最近更新 更多