Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Gulp packages
- var gulp = require('gulp');
- var gulpSass = require('gulp-sass');
- var gulpSourceMaps = require('gulp-sourcemaps');
- var gulpStreamify = require('gulp-streamify');
- var gulpUglify = require('gulp-uglify');
- var gulpIf = require('gulp-if');
- var gulpUtil = require('gulp-util');
- //
- var argv = require('yargs').argv;
- var notifier = require('node-notifier');
- var browserify = require('browserify');
- var babelify = require('babelify');
- var watchify = require('watchify');
- var source = require('vinyl-source-stream');
- var destStyles = 'public/css';
- var CONFIG_PRODUCTION = argv.production;
- var debug = (!CONFIG_PRODUCTION)?true:false;
- function swallowError (error) {
- console.log(error.toString());
- this.emit('end')
- }
- var directNotify = function(title, msg, icon){
- title = title || "build";
- icon = icon || "_build";
- notifier.notify({
- title: title,
- message: msg/*,
- icon: __dirname+'/resources/server_assets/'+icon*/
- });
- };
- gulp.task('sass', [], function ( next ) {
- var startTime = Date.now();
- var stream = gulp.src('./client/sass/app.scss')
- .pipe( gulpIf( debug, gulpSourceMaps.init( destStyles ) ))
- .pipe( gulpSass().on( 'error', gulpSass.logError) )
- .pipe( gulpIf( debug, gulpSourceMaps.write() ) )
- .pipe( gulp.dest( destStyles ) );
- stream.on("end", function(){
- if(debug){
- var endTime = Date.now() - startTime;
- directNotify('SASS', endTime+'ms', '_sass.png');
- }
- });
- return stream;
- });
- gulp.task('watch', function()
- {
- if(debug){
- gulp.watch('./client/sass/**/*.scss', ['sass']);
- gulp.watch('./client/**/*.js' );
- //gulp.watch( ['./resources/**/*.jsx', './resources/**/*.js'], ['build']);
- //gulp.watch('./locale/**/*.json', ['locale']);
- }
- });
- gulp.task('js', function(){
- var options = {
- appFile : 'app.js',
- appBuilder : {
- entries: 'client/app.js',
- debug: (CONFIG_PRODUCTION)?false:true
- },
- src: './client/app.js',
- dest: './public/js/',
- watch: false,
- development: true,
- devSourceMaps: (CONFIG_PRODUCTION)?false:true
- };
- var appBundler = browserify(options.appBuilder.entries, options.appBuilder);
- appBundler.transform( babelify, {presets: ["babel-preset-es2015"]} );
- var rebundle = function () {
- var start = Date.now();
- //console.log( gutil.colors.grey('Building APP bundle') );
- appBundler.bundle()
- .on('error', swallowError)
- .on('end', function(){
- var execTime = (Date.now() - start);
- gulpUtil.log( 'App build in', execTime+ ' ms' );
- directNotify('App build in', execTime+ ' ms')
- })
- .pipe( source(options.appFile) )
- .pipe( gulpIf(!options.development, gulpStreamify( gulpUglify().on('error', gulpUtil.log) ) ) )
- .pipe( gulp.dest(options.dest) );
- };
- appBundler.on('error', function () {
- console.log("bundle error", arguments);
- });
- if (!CONFIG_PRODUCTION) {
- appBundler = watchify(appBundler);
- appBundler.on('update', rebundle);
- }
- // And trigger the initial bundling
- rebundle();
- });
- gulp.task('vendors', function ( next ) {
- var config = {
- cache: {},
- packageCache: {},
- //extensions: ['.jsx'],
- require: [
- 'jquery',
- 'bootstrap-sass'
- ],
- debug: debug
- };
- var startTime = Date.now();
- var stream = browserify(config)
- .transform(babelify, {presets: ['es2015']})
- .bundle()
- .pipe( source('vendors.js') )
- .pipe( gulp.dest( 'public/js' ) );
- stream.on("end", function(){
- if(debug){
- var endTime = Date.now() - startTime;
- directNotify('Vendors', endTime+'ms', '_vendors.png');
- //gulpLivereload(livereloadConfig);
- }
- });
- return stream;
- });
- var tasks = ['sass', 'js', 'vendors', 'watch'];
- gulp.task('default', tasks);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement