Layne Anderson
2017-01-08 583af6d199035baa66dd99bf7cbc9014e5ad0ff3
commit | author | age
d76f7b 1 var gulp = require('gulp'),
M 2     uglify = require('gulp-uglify'),
3     insert = require('gulp-insert'),
299c3c 4     webpack = require('gulp-webpack')
d76f7b 5 ;
M 6
7 var packageName = 'react-datetime';
8 var pack = require( './package.json' );
9
10 var getWPConfig = function( filename ){
11     return {
12         externals: {
c3ac10 13             react: 'React',
PW 14             'react-dom': 'ReactDOM',
15             moment: 'moment'
d76f7b 16         },
M 17         output: {
18             libraryTarget: 'umd',
19             library: 'Datetime',
20             filename: filename + '.js'
21         }
22     };
23 };
24
25 var cr = ('/*\n%%name%% v%%version%%\n%%homepage%%\n%%license%%: https://github.com/arqex/' + packageName + '/raw/master/LICENSE\n*/\n')
26     .replace( '%%name%%', pack.name)
27     .replace( '%%version%%', pack.version)
28     .replace( '%%license%%', pack.license)
29     .replace( '%%homepage%%', pack.homepage)
30 ;
31
462115 32 var handleError = function( err ){
SE 33     console.log( 'Error: ', err );
fa70cd 34 };
462115 35
d76f7b 36 function wp( config, minify ){
299c3c 37     var stream =  gulp.src('./Datetime.js')
d76f7b 38         .pipe( webpack( config ) )
M 39     ;
40
41     if( minify ){
fa70cd 42         stream = stream.pipe( uglify() ).on( 'error', handleError );
d76f7b 43     }
M 44
299c3c 45     return stream.pipe( insert.prepend( cr ) )
SE 46         .pipe( gulp.dest('dist/') )
d76f7b 47     ;
M 48 }
49
462115 50 gulp.task( 'build', function( callback ) {
d76f7b 51     var config = getWPConfig( 'react-datetime' );
299c3c 52     config.devtool = '#eval';
d76f7b 53     wp( config );
M 54
55     config = getWPConfig( 'react-datetime.min' );
56     return wp( config, true );
57 });
58
59 gulp.task( 'default', ['build'] );