-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
executable file
·64 lines (57 loc) · 1.87 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
var { gulp, src, dest, watch, series, parallel } = require('gulp');
var postcss = require('gulp-postcss');
var presetEnv = require('postcss-preset-env');
var atImport = require('postcss-import');
var minify = require('gulp-clean-css');
var rename = require('gulp-rename');
var header = require('gulp-header');
var nunjucks = require('gulp-nunjucks-render');
var pkgJson = require('./package.json');
var browserSync = require('browser-sync').create();
var banner = ['/** <%= package.version %> <%= package.repo.url %> */\n'];
var presetEnvOptions = {
// preserve: true,
features: {
'custom-media-queries': true
}
}
function css() {
return src('./src/css/bundle.css')
.pipe(postcss([atImport, presetEnv(presetEnvOptions)]))
.pipe(rename(pkgJson.keyword + '.css'))
.pipe(header(banner, { package: pkgJson }))
.pipe(dest('./dist')) // <-- deliver expanded for dist
.pipe(minify())
.pipe(rename(pkgJson.keyword + '.min.css'))
.pipe(header(banner, { package: pkgJson }))
.pipe(dest('./dist')) // <-- deliver compressed for dist
.pipe(dest('./docs')) // <-- deliver extra copy for docs
.pipe(browserSync.stream())
}
function docs() {
return src('./src/docs/pages/**/*.njk')
.pipe(nunjucks({
path: './src/docs/partials',
data: { package: pkgJson }
}))
.pipe(dest('./docs'))
.pipe(browserSync.stream())
}
function readme() {
return src('./src/readme/*.njk')
.pipe(nunjucks({
ext: '.md',
data: { package: pkgJson }
}))
.pipe(dest('./'))
}
function server() {
browserSync.init({ server: "./docs", open: false })
}
function watcher() {
watch('./src/css/**/*', series(css, docs));
watch('./src/docs/**/*', docs);
watch('./src/readme/**/*', readme);
}
exports.build = parallel(css, docs, readme);
exports.default = parallel(css, docs, readme, server, watcher);