|
- var gulp = require('gulp');
- var concat = require('gulp-concat');
- var rename = require('gulp-rename');
- var uglify = require('gulp-uglify');
- var source = require('vinyl-source-stream');
- var browserify = require('browserify');
- var evstream = require('event-stream');
- var cleanCSS = require('gulp-clean-css');
- var nodemon = require('gulp-nodemon');
- var path = require('path');
-
- gulp.task('start', function() {
- nodemon({
- script: 'server.js',
- ignore: '*.*'
- });
- })
-
- gulp.task('watch', function () {
- nodemon({
- script: 'server.js',
- ext: 'js html css',
- env: {'NODE_ENV': 'dev'},
- watch: [
- 'app/',
- 'config/'
- ],
- tasks: function (changedFiles) {
- var tasks = [];
- changedFiles.forEach(function (file) {
- if (path.extname(file) === '.js' && !~tasks.indexOf('minjs'))
- tasks.push('minjs');
- if (path.extname(file) === '.css' && !~tasks.indexOf('mincss'))
- tasks.push('mincss');
- });
- return tasks;
- }
- }).on('restart?', function () {
- gulp.start('default');
- });
- });
-
- gulp.task('default', function () {
- gulp.start('minjs');
- gulp.start('mincss');
- });
-
- gulp.task('mincss', function () {
- var files = [
- {
- src: 'app/public/css/form.css',
- name: 'form.min.css'
- },
- {
- src: 'app/public/css/home.css',
- name: 'home.min.css'
- },
- {
- src: 'app/public/css/panel.css',
- name: 'panel.min.css'
- },
- {
- src: 'app/public/css/index.css',
- name: 'index.min.css'
- }
- ];
-
- var tasks = files.map(function (entry) {
- return gulp.src(entry.src)
- .pipe(cleanCSS())
- .pipe(rename(entry.name))
- .pipe(gulp.dest('public/css'));
- });
-
- return evstream.merge.apply(null, tasks);
- })
-
- gulp.task('minjs', function () {
- gulp.start('concatjs');
- gulp.start('browserify');
- });
-
- gulp.task('concatjs', function () {
- var files = [
- {
- src: [
- 'app/public/services/*.js',
- 'app/public/panel/**/*.js'
- ],
- name: 'panel.min.js'
- },
- {
- src: [
- 'app/public/services/*.js',
- 'app/public/shimapan/**/*.js'
- ],
- name: 'shimapan.min.js'
- },
- {
- src: 'app/public/index/*.js',
- name: 'index.min.js'
- }
- ];
-
- var tasks = files.map(function (entry) {
- return gulp.src(entry.src)
- .pipe(concat(entry.name))
- .pipe(uglify().on('error', function(err) {
- console.log(err.toString());
- }))
- .pipe(gulp.dest('public/js'));
- });
-
- return evstream.merge.apply(null, tasks);
- })
-
- gulp.task('browserify', ['concatjs'], function () {
- var files = [
- {
- src: 'public/js/shimapan.min.js',
- name: 'shimapan.bundle.js'
- },
- {
- src: 'public/js/panel.min.js',
- name: 'panel.bundle.js'
- }
- ];
-
- var tasks = files.map(function (entry) {
- return browserify({entries: [entry.src]})
- .bundle()
- .pipe(source(entry.src))
- .pipe(rename(entry.name))
- .pipe(gulp.dest('public/js'));
- });
-
- return evstream.merge.apply(null, tasks);
- });
|