Guest User

gulp task

a guest
Jan 17th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var gulp = require('gulp'),
  2. browserify = require('browserify'),
  3. tsify = require('tsify'),
  4. pretty = require('prettysize'),
  5. assign = require('lodash.merge'),
  6. source = require('vinyl-source-stream'),
  7. buffer = require('vinyl-buffer'),
  8. sourcemaps = require('gulp-sourcemaps'),
  9. uglify = require('gulp-uglify'),
  10. stream = require('stream');
  11. htmlmin = require('htmlmin');
  12. sass = require('node-sass');
  13.  
  14.  
  15. var $ = require('gulp-load-plugins')({
  16.     pattern: ['gulp-*', 'del']
  17. });
  18.  
  19.  
  20. module.exports = function(options) {
  21.     var inlineOptions = {
  22.         useRelativePaths: true,
  23.         removeLineBreaks: true,
  24.         supportNonExistentFiles: true,
  25.         target: 'es5',
  26.         supportNonExistentFiles: true,
  27.         styleProcessor: function (path, ext, file, callback) {
  28.             try {
  29.                 if(file !== ''){
  30.                     var processedSass = sass.renderSync({
  31.                         data: file,
  32.                         includePaths: []
  33.                     });
  34.                 }
  35.                 else{
  36.                     var processedSass = '';
  37.                 }
  38.  
  39.                 callback(null, processedSass.css ? processedSass.css.toString() : processedSass);
  40.             }
  41.             catch (err) {
  42.                 callback(err);
  43.             }
  44.         }
  45.     };
  46.     var defaultOptions = {
  47.         watch: false,
  48.         src: [options.src + '/main.ts'],
  49.         outputPath: options.tmp + '/serve/app',
  50.         outputFile: 'app.bundle.js',
  51.         minify: false,
  52.         browserifyOptions: {
  53.             cache: {},
  54.             packageCache: {},
  55.             debug: true
  56.         },
  57.         watchifyOptions: {},
  58.         tsifyOptions: {},
  59.         uglifyOptions: {},
  60.         onError: function(err){
  61.             console.error(err.toString());
  62.         },
  63.         onLog: function(log){
  64.             console.log((log = log.split(' '), log[0] = pretty(log[0]), log.join(' ')));
  65.         }
  66.     };
  67.     gulp.task('transpile', ['styles'], function(o){
  68.         var b = browserify(defaultOptions.src, defaultOptions.browserifyOptions)
  69.             .plugin(tsify, defaultOptions.tsifydefaultOptions);
  70.  
  71.         var debug = defaultOptions.browserifyOptions.debug;
  72.         return b.bundle()
  73.             .on('error', defaultOptions.onError)
  74.             .on('log', defaultOptions.onLog)
  75.             .pipe(source(defaultOptions.outputFile))
  76.             .pipe(buffer())
  77.             .pipe(debug ? sourcemaps.init({ loadMaps: true }) : noop())
  78.             .pipe(defaultOptions.minify ? uglify(defaultOptions.uglifyOptions) : noop())
  79.             .pipe(debug ? sourcemaps.write('./') : noop())
  80.             .pipe(gulp.dest(options.tmp + '/serve/app'));
  81.     });
  82.  
  83.     function noop(){
  84.         return new stream.PassThrough({ objectMode: true });
  85.     }
  86. }
Add Comment
Please, Sign In to add comment