-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathgulpfile.js
executable file
·93 lines (65 loc) · 2.67 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
86
87
88
89
90
91
92
93
var fs = require('fs')
var gulp = require("gulp");
var gulpSync = require("gulp-sync")(gulp);
var path = require("path");
var exec = require('child_process').exec;
var sass = require("gulp-sass");
var concat = require('gulp-concat'),
cssnano = require('gulp-cssnano'),
autoprefixer = require('gulp-autoprefixer');
var _safeExec = (commandStr, handleErrFunc, handleSuccessFunc, done) => exec(commandStr, { maxBuffer: 1024 * 500 }, function (err, stdout, stderr) {
if (err) {
handleErrFunc(err, done);
return;
}
handleSuccessFunc(done);
});
gulp.task("updatePwaCacheVersion", function (done) {
const packageJsonFilePath = path.join(__dirname, "package.json");
const serviceWorkerFilePath = path.join(__dirname, "service-worker.js");
var packageJson = JSON.parse(fs.readFileSync(packageJsonFilePath, "utf8"));
var data = fs.readFileSync(serviceWorkerFilePath, "utf8");
var result = data.replace(/(var\scacheName\s=\s')(.+)'/img, function (match, p1, p2) {
return p1 + "wonder-editor-cache-" + packageJson.version + "\'";
});
fs.writeFileSync(
serviceWorkerFilePath, result, "utf8"
);
done();
});
gulp.task("updateCopyRightVersion", function (done) {
const packageJsonFilePath = path.join(__dirname, "package.json");
const copyrightFilePath = path.join(__dirname, "src/Copyright.re");
var packageJson = JSON.parse(fs.readFileSync(packageJsonFilePath, "utf8"));
var data = fs.readFileSync(copyrightFilePath, "utf8");
var result = data.replace(/(let\sgetVersion\s=\s\(\)\s=>\s")(.+)"/img, function (match, p1, p2) {
return p1 + packageJson.version + "\"";
});
fs.writeFileSync(
copyrightFilePath, result, "utf8"
);
done();
});
gulp.task("sass", function () {
return gulp.src('./public/sass/**/*.scss')
.pipe(sass()).pipe(gulp.dest('./public/css'));
});
gulp.task("webpack:dev", function (done) {
_safeExec("npm run webpack:dev", (err, done) => { throw err }, (done) => done(), done);
});
gulp.task("webpack:prod", function (done) {
_safeExec("npm run webpack:prod", (err, done) => { throw err }, (done) => done(), done);
});
gulp.task("compressCss", function () {
return gulp.src("./public/css/index.css")
// TODO use index.min.css
.pipe(concat("index.css"))
.pipe(cssnano())
.pipe(gulp.dest("./public/css"))
});
gulp.task("watchSass", function () {
gulp.watch("public/sass/**/*.scss", ["sass"]);
});
gulp.task("build", gulpSync.sync(["sass", "webpack:dev"]));
gulp.task("buildProd", gulpSync.sync(["sass", "webpack:prod", "compressCss"]));
gulp.task("watch", gulpSync.sync(["webpack:dev", "watchProject"]));