-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
88 lines (74 loc) · 2.98 KB
/
Copy pathgulpfile.js
File metadata and controls
88 lines (74 loc) · 2.98 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
const fs = require('fs'),
gulp = require('gulp'),
clean = require('gulp-clean'),
include = require('gulp-include'),
rename = require('gulp-rename'),
zip = require('gulp-zip'),
ts = require('gulp-typescript'),
sourcemaps = require('gulp-sourcemaps'),
replace = require('gulp-replace');
gulp.task('clean', function() {
return gulp.src('dist/*', {read: false})
.pipe(clean());
});
gulp.task('ts', function () {
const tsconfig = require("./tsconfig.json");
return gulp.src('src/*.ts')
.pipe(sourcemaps.init())
//.pipe(ts(tsconfig.compilerOptions))
.pipe(ts(tsconfig.compilerOptions
/*{
"noImplicitAny": false,
"target": "es5",
"downlevelIteration": true
}*/))
//.pipe(sourcemaps.write())
.pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: '../src' }))
.pipe(gulp.dest('./compiled'));
});
gulp.task('watch', gulp.series('ts', function() {
gulp.watch('src/*.ts', gulp.series('ts'));
}));
gulp.task('build', gulp.series(['clean', 'ts'], function() {
const replaceDev = /(?:^\s*)?\/\/<remove>.*?\/\/<\/remove dev>(?:\s*$)?/gms;
const replaceDevEnd = /(?:^\s*)?\/\/<remove end>.*$/gms;
const replaceDevBeginning = /^.*\/\/<remove beginning>(?:\s*$)/gms;
const replaceFile = /(?:^\s*)?\/\/<replace file="(.*?)">(?:\s*$)?/g;
return Promise.all([
gulp.src('index.js')
.pipe(replace(replaceFile, (match, p1, offset, string) => {
//return fs.readFileSync(match.replace(replaceFile, "$1"), "utf8")
return fs.readFileSync(p1, "utf8")
//return fs.readFileSync("compiled/execute.js", "utf8")
.replace(replaceDev, "")
.replace(replaceDevEnd, "")
.replace(replaceDevBeginning, "")
+ "\r\n";
}))
.pipe(replace(replaceDev, ""))
.pipe(replace(replaceDevEnd, ""))
.pipe(replace(replaceDevBeginning, ""))
.on('error', console.log)
.pipe(gulp.dest('dist')),
gulp.src('partials/*.html')
.pipe(gulp.dest('dist/partials')),
gulp.src('module.json')
.pipe(gulp.dest('dist')),
gulp.src('LICENSE')
.pipe(gulp.dest('dist')),
gulp.src('README.md')
.pipe(gulp.dest('dist'))
])
}));
gulp.task('release', function() {
let moduleInfo = JSON.parse(fs.readFileSync('module.json')),
moduleId = moduleInfo.id,
moduleVersion = moduleInfo.version,
zipFileName = `${moduleId}-v${moduleVersion}.zip`;
console.log(`Packaging ${zipFileName}`);
return gulp.src('dist/**/*', { base: 'dist/'})
.pipe(rename((path) => path.dirname = `${moduleId}/${path.dirname}`))
.pipe(zip(zipFileName))
.pipe(gulp.dest('.'));
});
gulp.task('default', gulp.series('build', 'release'));