-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
85 lines (71 loc) · 2.68 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
"use strict";
//******************************************************************************
//* DEPENDENCIES
//******************************************************************************
var gulp = require("gulp"),
browserify = require("browserify"),
tsify = require("tsify"),
source = require("vinyl-source-stream"),
buffer = require("vinyl-buffer"),
tslint = require("gulp-tslint"),
tsc = require("gulp-typescript"),
sourcemaps = require("gulp-sourcemaps"),
uglify = require("gulp-uglify"),
runSequence = require("run-sequence"),
browserSync = require('browser-sync').create();
//******************************************************************************
//* LINT
//******************************************************************************
gulp.task("lint", function() {
var config = { formatter: "verbose", emitError: (process.env.CI) ? true : false };
return gulp.src([
"src/**/**.ts"
])
.pipe(tslint(config))
.pipe(tslint.report());
});
//******************************************************************************
//* BUILD DEV
//******************************************************************************
gulp.task("build", function() {
var libraryName = "listbuilder";
var mainTsFilePath = "src/init.ts";
var outputFolder = "Content/40kListBuilder/js/";
var outputFileName = libraryName + ".min.js";
var bundler = browserify({
debug: true,
standalone : libraryName
});
return bundler
.add(mainTsFilePath)
.plugin(tsify, { noImplicitAny: true })
.bundle()
.on('error', function (error) { console.error(error.toString()); })
.pipe(source(outputFileName))
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(uglify())
.pipe(sourcemaps.write("."))
.pipe(gulp.dest(outputFolder));
});
//******************************************************************************
//* DEV SERVER
//******************************************************************************
gulp.task("watch", ["default"], function () {
var files = [
'*.html',
'*.css',
'dist/**/**.js'
];
browserSync.init(files, {
server: "."
});
gulp.watch([ "src/**/**.ts", "src/**/**.js"], ["default"]);
gulp.watch("dist/*.js").on('change', browserSync.reload);
});
//******************************************************************************
//* DEFAULT
//******************************************************************************
gulp.task("default", function (cb) {
runSequence("lint", "build", cb);
});