UNPKG

generator-simple-aspnet

Version:
109 lines (93 loc) 2.5 kB
/*jslint node: true */ var del = require('del'); var runSequence = require('run-sequence'); var gulp = require('gulp'); var p = require('gulp-load-plugins')(); var less = p.less; var autoprefixer = p.autoprefixer; var rename = p.rename; var uglify = p.uglify; var concat = p.concat; var aspnet = p.aspnetK; var browserSync = require('browser-sync'); var reload = browserSync.reload; var opts = { buildFolder: './wwwroot/', client: { less: { main: './client/less/_.less', files: './client/less/**/*.less', destinationFilename: 'app.css' }, js: { files: './client/js/**/*.js', destinationFilename: 'app.js' }, image: { files: [ './client/images/**/*.png', './client/images/**/*.jpg' ] } }, server: { cs: { files: './server/**/*.cs' }, cshtml: { files: './server/Views/**/*.cshtml' }, aspnet: { kCommand: 'kestrel', cwd: './server' } } }; gulp.task('clean', function(cb) { del([opts.buildFolder], cb); }); gulp.task('js', function() { gulp.src(opts.client.js.files) .pipe(uglify()) .pipe(concat(opts.client.js.destinationFilename)) .pipe(gulp.dest(opts.buildFolder)) .pipe(reload({ stream: true })); }); gulp.task('aspnet', ['build-client'], aspnet(opts.server.aspnet)); gulp.task('less', function() { gulp.src(opts.client.less.main) .pipe(less()) .pipe(autoprefixer('last 2 versions', '> 5%')) .pipe(rename(opts.client.less.destinationFilename)) .pipe(gulp.dest(opts.buildFolder)) .pipe(reload({ stream: true })); }); gulp.task('images', function() { gulp.src(opts.client.image.files) .pipe(gulp.dest(opts.buildFolder)); }); gulp.task('browser-sync', function() { browserSync({ proxy: "localhost:5004", }); }); gulp.task('bs-reload', function() { browserSync.reload(); }); gulp.task('server-reload', function(cb) { runSequence('aspnet', 'bs-reload', cb); }); gulp.task('build-client', function(cb) { runSequence('clean', ['less', 'js', 'images'], cb); }); gulp.task('default', function(cb) { gulp.watch(opts.server.cs.files, ['server-reload']); gulp.watch(opts.server.cshtml.files, ['bs-reload']); gulp.watch(opts.client.less.files, ['less']); gulp.watch(opts.client.js.files, ['js']); runSequence('build-client', ['aspnet', 'browser-sync'], cb); });