@sencha/cmd-linux-64
Version:
Productivity and performance optimization tool for building applications with Sencha Ext JS
107 lines (94 loc) • 3.09 kB
JavaScript
'use strict';
var gulp = require('gulp'),
uglify = require('gulp-uglify'),
sourcemaps = require('gulp-sourcemaps'),
concat = require('gulp-concat'),
gulpUtil = require("gulp-util"),
clean = require("gulp-clean"),
babel = require('gulp-babel'),
rename = require("gulp-rename"),
browserify = require('browserify'),
source = require('vinyl-source-stream'),
fs = require('fs');
var config = {
source: './src/',
dist: './dist',
allJavaScript: './dist/**/*.js',
uglifyOptions: {
mangle:false,
compress: {
unsafe: true,
dead_code: true,
drop_debugger: true,
conditionals: true,
comparisons: true,
loops: true,
evaluate: true,
join_vars: true,
if_return: true,
cascade: true
}
},
babelOptions: {
presets: ['es2015', 'stage-0'],
compact: false
},
browserifyOptions: {
standalone: 'Fashion'
}
};
/**
* Remove all generated JavaScript files from TypeScript compilation.
*/
gulp.task('clean', function () {
// delete the files
return gulp.src(config.dist + '/**/*', {read: false})
.pipe(clean());
});
gulp.task('compile', [], function(){
return browserify('./index.js', config.browserifyOptions)
.bundle()
.pipe(source('fashion.src.js'))
.pipe(gulp.dest(config.dist));
});
gulp.task('transpile', ['compile'], function(){
return gulp.src(config.dist + '/fashion.src.js')
.pipe(babel(config.babelOptions))
.pipe(rename('fashion.js'))
.pipe(gulp.dest(config.dist))
.pipe(uglify(config.uglifyOptions).on('error', gulpUtil.log))
.pipe(rename('fashion-min.js'))
.pipe(gulp.dest(config.dist));
});
gulp.task('compile-export', [], function(){
return browserify('./export.js', config.browserifyOptions)
.bundle()
.pipe(source('fashion-export.src.js'))
.pipe(gulp.dest(config.dist));
});
gulp.task('transpile-export', ['compile-export'], function(){
return gulp.src(config.dist + '/fashion-export.src.js')
.pipe(babel(config.babelOptions))
.pipe(rename('fashion-export.js'))
.pipe(gulp.dest(config.dist))
.pipe(uglify(config.uglifyOptions).on('error', gulpUtil.log))
.pipe(rename('fashion-export-min.js'))
.pipe(gulp.dest(config.dist));
});
gulp.task('bundle', ['transpile'], function() {
return gulp.src([
'node_modules/traceur/bin/traceur.js',
'node_modules/systemjs/dist/system.src.js',
'dist/fashion.js'
])
.pipe(concat('fashion-browser.js'))
.pipe(gulp.dest(config.dist))
.pipe(uglify(config.uglifyOptions).on('error', gulpUtil.log))
.pipe(rename('fashion-browser-min.js'))
.pipe(gulp.dest(config.dist));
});
gulp.task('build', ['bundle', 'transpile-export']);
gulp.task('watch', function() {
gulp.watch([config.allJavaScript], ['bundle']);
});
gulp.task('default', ['bundle']);