github.com/jonasnick/go-ethereum@v0.7.12-0.20150216215225-22176f05d387/cmd/mist/assets/ext/ethereum.js/gulpfile.js (about)

     1  #!/usr/bin/env node
     2  
     3  'use strict';
     4  
     5  var path = require('path');
     6  
     7  var del = require('del');
     8  var gulp = require('gulp');
     9  var browserify = require('browserify');
    10  var jshint = require('gulp-jshint');
    11  var uglify = require('gulp-uglify');
    12  var rename = require('gulp-rename');
    13  var envify = require('envify/custom');
    14  var unreach = require('unreachable-branch-transform');
    15  var source = require('vinyl-source-stream');
    16  var exorcist = require('exorcist');
    17  var bower = require('bower');
    18  
    19  var DEST = './dist/';
    20  
    21  var build = function(src, dst, ugly) {
    22    var result = browserify({
    23        debug: true,
    24        insert_global_vars: false,
    25        detectGlobals: false,
    26        bundleExternal: false
    27      })
    28      .require('./' + src + '.js', {expose: 'web3'})
    29      .add('./' + src + '.js')
    30      .transform('envify', {
    31        NODE_ENV: 'build'
    32      })
    33      .transform('unreachable-branch-transform');
    34  
    35      if (ugly) {
    36        result = result.transform('uglifyify', {
    37          mangle: false,
    38          compress: {
    39            dead_code: false,
    40            conditionals: true,
    41            unused: false,
    42            hoist_funs: true,
    43            hoist_vars: true,
    44            negate_iife: false
    45          },
    46          beautify: true,
    47          warnings: true
    48        });
    49      }
    50  
    51      return result.bundle()
    52      .pipe(exorcist(path.join( DEST, dst + '.js.map')))
    53      .pipe(source(dst + '.js'))
    54      .pipe(gulp.dest( DEST ));
    55  };
    56  
    57  var uglifyFile = function(file) {
    58    return gulp.src( DEST + file + '.js')
    59      .pipe(uglify())
    60      .pipe(rename(file + '.min.js'))
    61      .pipe(gulp.dest( DEST ));
    62  };
    63  
    64  gulp.task('bower', function(cb){
    65    bower.commands.install().on('end', function (installed){
    66      console.log(installed);
    67      cb();
    68    });
    69  });
    70  
    71  gulp.task('clean', ['lint'], function(cb) {
    72    del([ DEST ], cb);
    73  });
    74  
    75  gulp.task('lint', function(){
    76    return gulp.src(['./*.js', './lib/*.js'])
    77      .pipe(jshint())
    78      .pipe(jshint.reporter('default'));
    79  });
    80  
    81  gulp.task('build', ['clean'], function () {
    82      return build('index', 'ethereum', true);
    83  });
    84  
    85  gulp.task('buildDev', ['clean'], function () {
    86      return build('index', 'ethereum', false);
    87  });
    88  
    89  gulp.task('uglify', ['build'], function(){
    90      return uglifyFile('ethereum');
    91  });
    92  
    93  gulp.task('uglifyDev', ['buildDev'], function(){
    94      return uglifyFile('ethereum');
    95  });
    96  
    97  gulp.task('watch', function() {
    98    gulp.watch(['./lib/*.js'], ['lint', 'prepare', 'build']);
    99  });
   100  
   101  gulp.task('release', ['bower', 'lint', 'build', 'uglify']);
   102  gulp.task('dev', ['bower', 'lint', 'buildDev', 'uglifyDev']);
   103  gulp.task('default', ['dev']);
   104