Repository navigation
Expand file tree
/
Copy pathgulpfile.js
More file actions
120 lines (103 loc) · 2.09 KB
/
Copy pathgulpfile.js
File metadata and controls
120 lines (103 loc) · 2.09 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
'use-strict';
const
babel = require('gulp-babel'),
beautify = require('gulp-jsbeautifier'),
beautifyJsConfig = {
indent_char: '\t',
indent_size: 1
},
concat = require('gulp-concat'),
del = require('del'),
fs = require('fs'),
gulp = require('gulp'),
header = require('gulp-header'),
rename = require('gulp-rename'),
strip = require('gulp-strip-comments'),
uglify = require('gulp-uglify');
gulp.task('clean', callback => {
let deletedPaths = del.sync(['dist/*']);
if(deletedPaths.length > 0)
console.log(
'Deleted files and directories:\n',
deletedPaths.join('\n'));
callback();
});
gulp.task('copy:src', () => gulp
.src(
['./src/**/*'],
{ base: './src/'}
)
.pipe(gulp.dest('./dist'))
);
gulp.task('copy:files', () => gulp
.src([
'./LICENSE',
'./README.md',
])
.pipe(gulp.dest('./dist'))
);
gulp.task('js:package-json', callback => {
let
packageJson = require('./package.json'),
itemsToRemove = [
'devDependencies',
'year'
];
for(let index in itemsToRemove){
let propertyName = itemsToRemove[index];
if(packageJson[propertyName]) delete(packageJson[propertyName]);
}
fs.writeFile(
'./dist/package.json',
JSON.stringify(packageJson),
err => {
if(err) throw err;
gulp.src('./dist/package.json')
.pipe(
beautify(beautifyJsConfig))
.pipe(
gulp.dest('./dist/'));
}
);
callback();
});
gulp.task('js:prep', () => gulp
.src(
'./dist/**/*.js',
{ base: './dist/'})
.pipe(strip())
.pipe(header(
fs.readFileSync('./assets/ejs/license.ejs', 'utf-8'),
{ pkg: require('./package.json') }
))
.pipe(babel())
.pipe(beautify(beautifyJsConfig))
.pipe(gulp.dest('./dist/'))
);
gulp.task('js:bundle', () => gulp
.src([
'./node_modules/@fjbo-net/event-js/event.js',
'./dist/**/*.js',
])
.pipe(concat('strbr.bundle.js'))
.pipe(gulp.dest('./dist/'))
);
gulp.task('js:minify', () => gulp
.src('./dist/**/*.js')
.pipe(uglify())
.pipe(rename({
extname: '.min.js'
}))
.pipe(gulp.dest('./dist/'))
);
gulp.task('default', gulp
.series(
'clean',
'copy:src',
'js:prep',
'js:bundle',
'js:minify',
'js:package-json',
'copy:files'
)
);