2016-02-21 3 views
1

Первый раз, используя gulp, и я следую за несколькими учебниками, которые, похоже, не работают для меня совершенно правильно. У меня есть настоящий базовый проект, и я просто хочу узнать, как использовать глоток для стандартных вещей, таких как js/css minification, уменьшение изображения и синхронизация браузера.Gulp BrowserSync с Django не работает

Когда я запускаю задачу с часами с помощью браузераSync, он переходит к правильному URL-адресу localhost: 8000, но он показывает «Невозможно GET /» вместо рендеринга моей страницы. Как исправить это, чтобы я мог использовать browserSync с Django?

каталог файлов:

http://screencast.com/t/AkIOE3TO

gulpfile:

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']); 
}) 

ответ

10

Просто пришлось сделать еще одну задачу под названием 'runserver', которая работает в CMD питона manage.py runserver. Поместите задачу как одну из зависимостей для browserSync, установите прокси и порт, и я был настроен на работу.

var exec = require ('child_process'). Exec не требует дополнительной установки npm. Я думаю, что он автоматически встроен.

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); 
})