'use strict'; var gulp = require('gulp'), minifycss = require('gulp-clean-css'), uglify = require('gulp-uglify'), concat = require('gulp-concat'), header = require('gulp-header'), buffer = require('vinyl-buffer'), pkg = require('./package.json'), eslint = require('gulp-eslint'), browserify = require('browserify'), source = require('vinyl-source-stream'), rename = require('gulp-rename'); var banner = ['/**', ' * <%= pkg.name %> v<%= pkg.version %>', ' * Copyright <%= pkg.author %>', ' * @link <%= pkg.repository.url %>', ' * @license <%= pkg.license %>', ' */', ''].join('\n'); gulp.task('lint', function () { gulp.src('./src/js/**/*.js') .pipe(eslint()) .pipe(eslint.format()) .pipe(eslint.failAfterError()); }); gulp.task('scripts', ['lint'], function () { return browserify({entries: './src/js/easymde.js', standalone: 'EasyMDE'}).bundle() .pipe(source('easymde.min.js')) .pipe(buffer()) .pipe(uglify()) .pipe(header(banner, {pkg: pkg})) .pipe(gulp.dest('./dist/')); }); gulp.task('styles', function () { var css_files = [ './node_modules/codemirror/lib/codemirror.css', './src/css/*.css', './node_modules/codemirror-spell-checker/src/css/spell-checker.css' ]; return gulp.src(css_files) .pipe(concat('easymde.css')) .pipe(minifycss()) .pipe(rename('easymde.min.css')) .pipe(buffer()) .pipe(header(banner, {pkg: pkg})) .pipe(gulp.dest('./dist/')); }); gulp.task('default', ['scripts', 'styles']);