-
Notifications
You must be signed in to change notification settings - Fork 4
/
gulpfile.babel.js
87 lines (75 loc) · 2.56 KB
/
gulpfile.babel.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
86
87
//https://medium.com/@andrewhenderson/es6-with-babel-6-gulp-and-rollup-aa7aeddeccc6
//https://github.com/gulpjs/gulp#use-latest-javascript-version-in-your-gulpfile
//
// npm i -D babel-core gulp@next gulp-file rollup rollup-plugin-babel babel-preset-env
//
//For cleanup/minification:
// npm i -D gulp-strip-comments gulp-header gulp-uglify gulp-rename
//
//(Ignore warning "Failed to load external module @babel/register")
//https://github.com/gulpjs/gulp/issues/1631
import gulp from 'gulp';
import file from 'gulp-file';
import { rollup } from 'rollup';
import babel from 'rollup-plugin-babel';
//Cleanup & minification step:
import strip from 'gulp-strip-comments';
import header from 'gulp-header';
import rename from 'gulp-rename';
import uglify from 'gulp-uglify';
import * as pkg from './package.json';
const globalName = 'dragTracker',
outFolder = 'dist/',
//Remove scope (if any) from output path:
outFile = pkg.name.replace(/.*\//, '');
const myBanner = `/*!
* <%= pkg.name %> v<%= pkg.version %>
* <%= pkg.homepage %>
*
* Copyright 2017-<%= new Date().getFullYear() %> <%= pkg.author %>
* Released under the <%= pkg.license %> license.
*/
`;
gulp.task('build', function() {
return rollup({
input: pkg.module,
plugins: [
babel({
babelrc: false,
presets: [
["env", { "modules": false }]
],
exclude: 'node_modules/**',
})
],
})
.then(bundle => {
return bundle.generate({
format: 'umd',
name: globalName,
});
})
.then(gen => {
/* http://paulsalaets.com/posts/reusable-pipelines-in-gulp-build
function output(inputStream) {
inputStream
.pipe(header(myBanner, { pkg : pkg }))
.pipe(gulp.dest(outFolder));
}
//*/
const cleanStream = file(outFile + '.js', gen.code, { src: true })
.pipe(strip())
//output(cleanStream);
.pipe(header(myBanner, { pkg : pkg }))
.pipe(gulp.dest(outFolder))
//output(cleanStream
//https://codehangar.io/concatenate-and-minify-javascript-with-gulp/
//https://stackoverflow.com/questions/32656647/gulp-bundle-then-minify
//(https://stackoverflow.com/questions/40609393/gulp-rename-illegal-operation)
.pipe(rename({ extname: '.min.js' }))
.pipe(uglify())
.pipe(header(myBanner, { pkg: pkg }))
.pipe(gulp.dest(outFolder));
//);
});
});