123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 'use strict';
- var gulp = require('gulp'),
- plugins = require('gulp-load-plugins')(),
- pkg = require('./package'),
- scripts = {
- all: [
- 'src/*.js',
- 'gulpfile.js',
- 'docs/js/main.js'
- ],
- src: 'src/*.js',
- docs: 'docs/js',
- dest: 'dist/js'
- },
- styles = {
- src: 'src/css/*.css',
- docs: 'docs/css',
- dest: 'dist/css'
- },
- images = {
- src: 'src/images/*.png',
- docs: 'docs/images',
- dest: 'dist/images'
- };
- gulp.task('jshint', function () {
- return gulp.src(scripts.all)
- .pipe(plugins.jshint())
- .pipe(plugins.jshint.reporter('default'));
- });
- gulp.task('jscs', function () {
- return gulp.src(scripts.all)
- .pipe(plugins.jscs());
- });
- gulp.task('js', ['jshint', 'jscs', 'copy'], function () {
- return gulp.src(scripts.src)
- .pipe(plugins.replace(/@\w+/g, function (placeholder) {
- switch (placeholder) {
- case '@VERSION':
- placeholder = pkg.version;
- break;
- case '@YEAR':
- placeholder = (new Date()).getFullYear();
- break;
- case '@DATE':
- placeholder = (new Date()).toISOString();
- break;
- }
- return placeholder;
- }))
- .pipe(gulp.dest(scripts.docs))
- .pipe(gulp.dest(scripts.dest))
- .pipe(plugins.rename({
- suffix: '.min'
- }))
- .pipe(plugins.uglify({
- preserveComments: 'license'
- }))
- .pipe(gulp.dest(scripts.dest));
- });
- gulp.task('jscopy', function () {
- return gulp.src(scripts.src)
- .pipe(gulp.dest(scripts.docs))
- .pipe(gulp.dest(scripts.dest));
- });
- gulp.task('csscopy', function () {
- return gulp.src(styles.src)
- .pipe(gulp.dest(styles.docs))
- .pipe(gulp.dest(styles.dest));
- });
- gulp.task('imagecopy', function () {
- return gulp.src(images.src)
- .pipe(gulp.dest(images.docs))
- .pipe(gulp.dest(images.dest));
- });
- gulp.task('copy', ['jscopy', 'csscopy', 'imagecopy'], function () {
- });
- gulp.task('docs', function () {
- return gulp.src('docs/**')
- .pipe(gulp.dest('_gh_pages'));
- });
- gulp.task('release', ['js', 'docs'], function () {
- return gulp.src('dist/**/*')
- .pipe(gulp.dest('_releases/' + pkg.version));
- });
- gulp.task('watch', function () {
- gulp.watch(scripts.src, ['jscopy']);
- gulp.watch(styles.src, ['csscopy']);
- });
- gulp.task('default', ['watch']);
|