-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gulpfile.js
75 lines (68 loc) · 1.91 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
const gulp = require("gulp");
// const named = require("vinyl-named-with-path");
const rev = require("gulp-rev");
const del = require("del");
const sass = require("gulp-sass");
const cssimport = require("gulp-cssimport");
// const webpackstream = require("webpack-stream");
sass.compiler = require("node-sass");
/**
* Takes an input stream, revisions all files in the stream, writes them, builds a manifest file, merges the manifest
* file with any existing manifest, writes the manifest file.
*
* @param inputStream
* @returns {*}
*/
function revision(inputStream) {
return inputStream.pipe(rev())
.pipe(gulp.dest("./public")) // output the public files into public/
.pipe(rev.manifest({
merge: true
}))
.pipe(gulp.dest(".")); // output the manifest into ./
}
/**
* Removes outdated file versions
*/
function clean(cb) {
return del([
"public/assets/css/**"
]);
}
function designSystem(cb) {
return revision(
gulp
.src(
[
"./resources/assets/css/app.css",
],
{
base: "./resources" // we want to put the files in "./public/assets/css", so we only want to remove the "resources"
}
)
.pipe(cssimport({}))
.pipe(
sass({outputStyle: "compressed"})
.on("error", sass.logError)
)
);
}
function tailwind(cb) {
return revision(
gulp.src(
[
"./resources/assets/css/tailwind.min.css",
],
{
base: "./resources" // we want to put the files in "./public/assets/css", so we only want to remove the "resources"
}
)
);
}
const styles = gulp.series(
designSystem,
tailwind
);
exports.clean = clean;
exports.styles = styles;
exports.default = gulp.series(clean, styles);