| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- var gulp = require('gulp');
- var browserSync = require('browser-sync').create();
- var mocha = require('gulp-mocha');
- var uglify = require('gulp-uglify');
- var rename = require("gulp-rename");
- var del = require('del');
- var eslint = require('gulp-eslint');
- var merge = require('merge-stream');
- var csslint = require('gulp-csslint');
- var cleanCSS = require('gulp-clean-css');
- var sourcemaps = require('gulp-sourcemaps');
- var testcafe = require('gulp-testcafe');
- var paths = {
- src: 'src',
- srcFiles: 'src/**/*',
- srcHTML: 'src/**/*.html',
- srcCSS: 'src/css/*.css',
- srcJS: 'src/js/*.js',
- demo: 'demo',
- demoFiles: 'demo/**/*',
- demoHTML: 'demo/**/*.html',
- demoCSSFolder: 'demo/css',
- demoCSS: 'demo/**/*.css',
- demoJSFolder: 'demo/js',
- demoJS: 'demo/**/*.js',
- dist: 'dist',
- distIndex: 'dist/index.html',
- distCSS: 'dist/**/*.css',
- distCSSFolder: 'dist/css',
- distJS: 'dist/**/*.js',
- distJSFolder: 'dist/js'
- };
- gulp.task('unit-tests', function () {
- return gulp.src(['test/unit/*.js'], {read: false})
- .pipe(mocha({reporter: 'spec'}));
- });
- gulp.task('integration-tests', ['unit-tests'], function () {
- return gulp.src(['test/integration/*.js'], {read: false})
- .pipe(mocha({reporter: 'spec'}));
- });
- gulp.task('addAssets', ['integration-tests'], function () {
- var fontawesomeCSS = gulp.src('node_modules/font-awesome/css/font-awesome.min.css')
- .pipe(gulp.dest(paths.demoCSSFolder));
- var fontawesomeFonts = gulp.src('node_modules/font-awesome/fonts/*')
- .pipe(gulp.dest(paths.demo + '/fonts'));
- var jsFiles = gulp.src([
- paths.srcJS,
- 'node_modules/jquery/dist/jquery.min.js',
- 'node_modules/jquery-mockjax/dist/jquery.mockjax.min.js',
- 'node_modules/html2canvas/dist/html2canvas.min.js',
- 'node_modules/jspdf/dist/jspdf.min.js'
- ])
- .pipe(gulp.dest(paths.demoJSFolder));
- var cssFiles = gulp.src(paths.srcCSS)
- .pipe(gulp.dest(paths.demoCSSFolder));
- return merge(fontawesomeCSS, fontawesomeFonts, jsFiles, cssFiles);
- });
- gulp.task('e2e-tests', ['addAssets'], function () {
- return gulp.src('test/e2e/**/test.js')
- .pipe(testcafe({ browsers: ['chrome:headless', 'firefox:headless'] }));
- });
- gulp.task('cleanupJS', function() {
- del([paths.distJSFolder + '/**']);
- });
- gulp.task('eslint', function () {
- return gulp.src(paths.srcJS)
- .pipe(eslint.format())
- .pipe(eslint.failOnError());
- });
- gulp.task('js', ['cleanupJS', 'eslint', 'e2e-tests'], function () {
- return gulp.src(paths.srcJS)
- .pipe(gulp.dest(paths.distJSFolder))
- .pipe(sourcemaps.init())
- .pipe(uglify())
- .pipe(rename('jquery.orgchart.min.js'))
- .pipe(sourcemaps.write('./'))
- .pipe(gulp.dest(paths.distJSFolder));
- });
- gulp.task('cleanupCSS', function() {
- del([paths.distCSSFolder + '/**']);
- });
- gulp.task('csslint', function() {
- gulp.src(paths.srcCSS)
- .pipe(csslint({
- 'adjoining-classes': false,
- 'box-sizing': false,
- 'box-model': false,
- 'fallback-colors': false,
- 'order-alphabetical': false
- }))
- .pipe(csslint.formatter());
- });
- gulp.task('css', ['cleanupCSS', 'csslint'], function () {
- return gulp.src(paths.srcCSS)
- .pipe(gulp.dest(paths.distCSSFolder))
- .pipe(cleanCSS())
- .pipe(rename('jquery.orgchart.min.css'))
- .pipe(gulp.dest(paths.distCSSFolder));
- });
- gulp.task('build', ['js', 'css']);
- gulp.task('reload', function (done) {
- browserSync.reload();
- done();
- });
- gulp.task('serve', ['build'], function () {
- browserSync.init({
- server: {
- baseDir: paths.demo
- }
- });
- gulp.watch(paths.srcFiles, ['build']);
- gulp.watch(paths.demoFiles, ['reload']);
- });
|