-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
113 lines (101 loc) 路 2.5 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
const { src, dest, watch, series } = require('gulp');
const sass = require('gulp-sass')(require('sass'));
const del = require('del');
const postcss = require('gulp-postcss');
const cssnano = require('cssnano');
const browsersync = require('browser-sync').create();
const run = require('gulp-run');
const rename = require("gulp-rename");
//#region Serve
function browserSyncServe(cb) {
browsersync.init({
server: {
baseDir: './demo'
}
});
cb();
}
function browserSyncReload(cb) {
console.log('reloading....');
browsersync.reload();
cb();
}
function scssTask() {
return src('demo/**/*.scss', { sourcemaps: false })
.pipe(sass())
.pipe(dest('demo'))
.pipe(postcss([cssnano()]))
.pipe(rename((path) => {
path.basename += ".min";
}))
.pipe(dest('demo'));
}
function watchTask() {
watch('demo/**/*.html', browserSyncReload);
watch(
['demo/**/*.scss', 'src/**/*.scss'],
series(
scssTask,
browserSyncReload
)
);
}
const serveTask = series(
scssTask,
browserSyncServe,
watchTask
);
//#endregion
//#region Dist
function clean() {
return del('dist');
}
function createDist() {
return src(['src/**/*.scss', './package.json', './README.md'])
.pipe(dest('dist'));
}
const distTask = series(
clean,
createDist
);
//#endregion
//#region Release
function npmVersion(version) {
const cmd = `pnpm version ${version} --no-git-tag-version`;
console.log(`Running: "${cmd}"`);
return run(cmd).exec();
}
function releaseMajorTask() {
return npmVersion('major');
}
function releaseMinorTask() {
return npmVersion('minor');
}
function releasePatchTask() {
return npmVersion('patch');
}
function releasePremajorTask() {
return npmVersion('premajor');
}
function releasePreminorTask() {
return npmVersion('preminor');
}
function releasePrepatchTask() {
return npmVersion('prepatch');
}
function releasePrereleaseTask() {
return npmVersion('prerelease');
}
//#endregion
// exports
exports.serve = serveTask;
exports.dist = distTask;
exports['release:major'] = releaseMajorTask;
exports['release:minor'] = releaseMinorTask;
exports['release:patch'] = releasePatchTask;
exports['release:premajor'] = releasePremajorTask;
exports['release:preminor'] = releasePreminorTask;
exports['release:prepatch'] = releasePrepatchTask;
exports['release:prerelease'] = releasePrereleaseTask;
// dejar este al final
exports.default = serveTask;