123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- require('es6-promise').polyfill();
- var gulp = require('gulp'),
- browserify = require('browserify'),
- concatCss = require('gulp-concat-css'),
- cleanCSS = require('gulp-clean-css'),
- sass = require('gulp-sass'),
- uglify = require('gulp-uglify'),
- buffer = require('vinyl-buffer'),
- source = require('vinyl-source-stream'),
- sourcemaps = require('gulp-sourcemaps'),
- merge = require('merge-stream'),
- postcss = require('gulp-postcss'),
- pxtorem = require('postcss-pxtorem'),
- autoprefixer = require('autoprefixer'),
- shell = require('gulp-shell'),
- replace = require('gulp-replace');
- var cssProcessors = [
- autoprefixer(),
- pxtorem({
- rootValue: 14,
- replace: false,
- propWhiteList: []
- })
- ];
- gulp.task('scripts', function() {
- return browserify('./jet/static/jet/js/src/main.js')
- .bundle()
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(source('bundle.min.js'))
- .pipe(buffer())
- .pipe(uglify())
- .pipe(gulp.dest('./jet/static/jet/js/build/'));
- });
- gulp.task('styles', function() {
- return gulp.src('./jet/static/jet/css/**/*.scss')
- .pipe(sourcemaps.init())
- .pipe(sass({
- outputStyle: 'compressed'
- }))
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(postcss(cssProcessors))
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(sourcemaps.write('./'))
- .pipe(gulp.dest('./jet/static/jet/css'));
- });
- gulp.task('vendor-styles', function() {
- return merge(
- gulp.src('./node_modules/jquery-ui/themes/base/images/*')
- .pipe(gulp.dest('./jet/static/jet/css/jquery-ui/images/')),
- merge(
- gulp.src([
- './node_modules/select2/dist/css/select2.css',
- './node_modules/timepicker/jquery.ui.timepicker.css'
- ]),
- gulp.src([
- './node_modules/jquery-ui/themes/base/all.css'
- ])
- .pipe(cleanCSS()) // needed to remove jQuery UI comments breaking concatCss
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(concatCss('jquery-ui.css', {
- rebaseUrls: false
- }))
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(replace('images/', 'jquery-ui/images/'))
- .on('error', function(error) {
- console.error(error);
- }),
- gulp.src([
- './node_modules/perfect-scrollbar/src/css/main.scss'
- ])
- .pipe(sass({
- outputStyle: 'compressed'
- }))
- .on('error', function(error) {
- console.error(error);
- })
- )
- .pipe(postcss(cssProcessors))
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(concatCss('vendor.css', {
- rebaseUrls: false
- }))
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(cleanCSS())
- .on('error', function(error) {
- console.error(error);
- })
- .pipe(gulp.dest('./jet/static/jet/css'))
- )
- });
- gulp.task('vendor-translations', function() {
- return merge(
- gulp.src(['./node_modules/jquery-ui/ui/i18n/*.js'])
- .pipe(gulp.dest('./jet/static/jet/js/i18n/jquery-ui/')),
- gulp.src(['./node_modules/timepicker/i18n/*.js'])
- .pipe(gulp.dest('./jet/static/jet/js/i18n/jquery-ui-timepicker/')),
- gulp.src(['./node_modules/select2/dist/js/i18n/*.js'])
- .pipe(gulp.dest('./jet/static/jet/js/i18n/select2/'))
- )
- });
- gulp.task('locales', shell.task('python manage.py compilemessages', { quiet: true }));
- gulp.task('build', ['scripts', 'styles', 'vendor-styles', 'vendor-translations', 'locales']);
- gulp.task('watch', function() {
- gulp.watch('./jet/static/jet/js/src/**/*.js', ['scripts']);
- gulp.watch('./jet/static/jet/css/**/*.scss', ['styles']);
- gulp.watch(['./jet/locale/**/*.po', './jet/dashboard/locale/**/*.po'], ['locales']);
- });
- gulp.task('default', ['build', 'watch']);
|