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