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