如何使用Django的Gulp浏览器同步?

6fe3ivhb  于 2022-12-08  发布在  Gulp
关注(0)|答案(3)|浏览(184)

第一次使用Gulp,我遵循了几个教程,似乎不太适合我。我有一个真实的的基础项目,我只是想学习如何使用Gulp进行标准的事情,如JavaScript/CSS缩小,图像缩小和浏览器同步。
当我用Browsersync运行我的watch任务时,它会转到正确的URL localhost:8000,但它显示的是Cannot GET /而不是渲染我的页面。我该如何修复这个问题,以便我可以在Django中使用Browsersync?
档案目录:

gulpfile.js

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();

gulp.task('sass', function() {
  return gulp.src('polls/static/polls/scss/**/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('polls/static/polls/css'))
    .pipe(browserSync.reload({
      stream: true
    }))
});

gulp.task('browserSync', function() {
  browserSync.init({
    server: "mysite",
    port: 8000
  });
});

gulp.task('watch', ['browserSync', 'sass'], function() {
  gulp.watch('polls/static/polls/scss/**/*.scss', ['sass']);
})
pgpifvop

pgpifvop1#

只是不得不制作另一个名为runserver的任务,它在cmd python manage.py runserver中运行。将该任务作为Browsersync的依赖项之一,设置代理和端口,我就被设置为去。
var exec = require('child_process').exec不需要任何额外的npm install。我认为它是自动内置的。

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
var exec = require('child_process').exec;

gulp.task('sass', function() {
  return gulp.src('polls/static/polls/scss/**/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('polls/static/polls/css'))
    .pipe(browserSync.reload({
      stream: true
    }))
});

gulp.task('runserver', function() {
  var proc = exec('python manage.py runserver')
})

gulp.task('browserSync', ['runserver'], function() {
  browserSync.init({
    notify: false,
    port: 8000,
    proxy: 'localhost:8000'
  })
});

gulp.task('watch', ['browserSync', 'sass'], function() {
  gulp.watch('polls/static/polls/scss/**/*.scss', ['sass']);
  gulp.watch('polls/static/polls/scripts/**/*.js', browserSync.reload);
  gulp.watch('polls/templates/**/*.html', browserSync.reload);
})
ulydmbyx

ulydmbyx2#

使用Gulp 4,下面是我的代码副本:

const gulp = require('gulp');
const browserSync = require('browser-sync').create();
const exec = require('child_process').exec;

gulp.task('runserver', function() {
    var proc = exec('python manage.py runserver');
    return new Promise(function(resolve, reject) {
        console.log("HTTP Server Started");
        resolve();
    });
})

gulp.task('browserSync', gulp.series('runserver'), function() {
     browserSync.init({
         notify: false,
         port: 8000,
         proxy: 'localhost:8000'
     });
});

gulp.task('watch', gulp.series('browserSync'), function() {
    gulp.watch('polls/static/polls/scripts/**/*.js', browserSync.reload);
    gulp.watch('polls/templates/**/*.html', browserSync.reload);
})
5uzkadbs

5uzkadbs3#

gulp.task('browserSync', ['runserver'], function() {
  browserSync.init({
    notify: false,
    proxy: 'localhost:8000'
  })
});

相关问题