【发布时间】:2016-04-27 09:26:08
【问题描述】:
我正在使用 gulp 和浏览器同步构建一个烧瓶项目,以帮助我处理前端的事情。但是当我在我的 Flask 项目中修改一些文件时,浏览器不会自动重新加载,我必须点击 F5 手动刷新浏览器才能看到更改。虽然在进行一些更改时我可以从浏览器同步中看到以下输出:
[BS] Reloading Browsers...
这是我的gulpfile.js,我通过在终端中运行gulp 启动了browser-sync 和其他gulp 任务
var gulp = require('gulp');
var cleanCSS = require('gulp-clean-css');
var sass = require('gulp-sass');
var browserSync = require('browser-sync');
var rename = require('gulp-rename');
var autoprefixer = require('gulp-autoprefixer');
var reload = browserSync.reload;
var exec = require('child_process').exec;
var paths = {
scss: ['scss/*.scss'],
css: ['static/css/*.css', '!static/css/*.min.css']
};
gulp.task('scss', function () {
return gulp.src(paths.scss)
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9'))
.pipe(gulp.dest('static/css'));
});
gulp.task('minify-css', ['scss'], function() {
return gulp.src(paths.css)
.pipe(rename({suffix: '.min'}))
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(gulp.dest('static/css'))
.pipe(reload({stream: true}));
});
//Run Flask server
gulp.task('runserver', function() {
var proc = exec('python app.py');
});
gulp.task('browser-sync', ['runserver'], function () {
browserSync({
notify: false,
proxy: "127.0.0.1:5000"
});
});
gulp.task('watch', function () {
gulp.watch(paths.scss, ['minify-css']);
gulp.watch(["templates/**/*.html", "static/**/*.js"]).on('change', reload);
});
gulp.task('default', ['watch', 'browser-sync']);
编辑
目录结构是这样的:
.
├── __init__.py
├── app.py
├── config.py
├── database.py
├── gulpfile.js
├── res
├── routes
│ ├── definitions.py
│ ├── index.py
│ ├── __init__.py
│ ├── users.py
│ └── utilities.py
├── scss
│ ├── main.scss
│ └── pushmenu.scss
├── static
│ ├── css
│ │ ├── main.css
│ │ ├── main.min.css
│ │ ├── pushmenu.css
│ │ └── pushmenu.min.css
│ ├── images
│ └── js
│ └── search.js
└── templates
├── index.html
└── layout.html
【问题讨论】:
-
@rick 我困惑了好几天,还没找到解决办法。
-
你试过我的更新了吗?
-
在我上次更新之外,我不知道如何帮助您。顺便说一句,你试过了吗?
-
@rick 谢谢你的帮助。在我进行了一些更改后,浏览器同步终于起作用了。我想这与
gulp.watch部分有关。但是让我感到困惑的是,即使我在其中添加了所有可能的文件,浏览器同步一开始也不起作用。也许是因为我昨晚困了,在这个过程中出了点问题。但无论如何它现在工作。我真的很感谢你的帮助。 :) -
很高兴你成功了!如果您有时间,请在您的帖子中创建一个小更新部分,使用更新后的 gulpfile.js 来获取功能内存
标签: javascript python flask gulp browser-sync