-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
66 lines (60 loc) · 2.09 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var fs = require('fs');
var gulp = require('gulp');
var concat = require('gulp-concat');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var del = require('del');
var browserify = require('browserify');
var tsify = require('tsify');
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
var sass = require('gulp-sass');
gulp.task( 'site.js', ()=>buildJs('site.js', false) )
gulp.task( 'site.min.js', ()=>buildJs('site.min.js', true) ) // <== NB: Not used but contains additional compilation checks => Leaving it ...
gulp.task( 'style.css', ()=>buildCSS('style.css') );
gulp.task( 'default', gulp.parallel('site.js', 'site.min.js', 'style.css') );
gulp.task( 'clean', function()
{
return del( [ './app/bin',
'./app/obj',
'./app/wwwroot/js/site*.js',
'./app/wwwroot/js/site*.map',
'./app/wwwroot/css/style.css',
'./app/wwwroot/css/style.css.map',
] );
} );
function buildJs(fileName, releaseMode)
{
// cf. https://www.typescriptlang.org/docs/handbook/compiler-options.html
var tsifyParms = {};
if( releaseMode )
{
tsifyParms.noImplicitAny = true;
tsifyParms.noUnusedLocals = true;
}
var b = browserify({ debug:true })
.add( './app/global.d.ts' )
.add( './app/global.ts' ) // The TypeScript entry point
.plugin( tsify, tsifyParms );
var stream = b.bundle() // Execute Browserify
.pipe( source(fileName) ) // Destination filename
.pipe( buffer() )
.pipe( sourcemaps.init({ loadMaps: true }) );
if( releaseMode )
stream = stream
.pipe( uglify() );
stream = stream
.on( 'error', function(error){ console.error(error.toString()); } )
.pipe( sourcemaps.write('./') )
.pipe( gulp.dest('./app/wwwroot/js/') ); // Destination directory
return stream;
};
function buildCSS( fileName )
{
return gulp.src( './app/src/**/*.scss' )
.pipe( sourcemaps.init({ loadMaps: true }) )
.pipe( sass().on('error', sass.logError) )
.pipe( concat(fileName) )
.pipe( sourcemaps.write('./') )
.pipe( gulp.dest('./app/wwwroot/css') );
};