-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
134 lines (126 loc) · 2.55 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
* Inspired by: https://www.jianshu.com/p/5ab7b4b48964
*/
const { series, parallel, src, dest } = require('gulp');
const rename = require('gulp-rename');
const debug = require('gulp-debug');
const clean = require('gulp-clean');
const eslint = require('gulp-eslint');
const prettier = require('gulp-prettier');
const config = require('./.eslintrc.js');
// wxss 一键格式化
const wxssESLint = () => {
return src('./**/*.wxss')
.pipe(
// 可以利用插件,查看一些 debug 信息
debug()
)
.pipe(
// 重写扩展名为 css,才能被 ESLint 识别解析
rename({
extname: '.css',
})
)
.pipe(
// ESLint 格式化
eslint(config)
)
.pipe(
// 重新将扩展名改为 wxss
rename({
extname: '.wxss',
})
)
.pipe(
// 导出文件
dest(__dirname)
);
};
// acss 一键格式化
const acssESLint = () => {
return src('./**/*.acss')
.pipe(debug())
.pipe(
rename({
extname: '.css',
})
)
.pipe(eslint(config))
.pipe(
rename({
extname: '.acss',
})
)
.pipe(dest(__dirname));
};
// wxml 一键格式化
const wxmlESLint = () => {
return src('./**/*.wxml')
.pipe(debug())
.pipe(
rename({
extname: '.html',
})
)
.pipe(eslint(config))
.pipe(
rename({
extname: '.wxml',
})
)
.pipe(dest(__dirname));
};
const wxssPrettier = () => {
return src('./**/*.wxss')
.pipe(debug())
.pipe(
rename({
extname: '.css',
})
)
.pipe(prettier(config))
.pipe(
rename({
extname: '.wxss',
})
)
.pipe(dest(__dirname));
};
const acssPrettier = () => {
return src('./**/*.acss')
.pipe(debug())
.pipe(
rename({
extname: '.css',
})
)
.pipe(prettier(config))
.pipe(
rename({
extname: '.acss',
})
)
.pipe(dest(__dirname));
};
const wxmlPrettier = () => {
return src('./**/*.wxml')
.pipe(debug())
.pipe(
rename({
extname: '.html',
})
)
.pipe(prettier(config))
.pipe(
rename({
extname: '.wxml',
})
)
.pipe(dest(__dirname));
};
// 这里导出多个 task,通过 gulp xxx 就能来调用了,如 gulp all
// 关于 series、parallel API 分别是按顺序执行(同步)、同时执行(并行)
module.exports = {
'prettier:all': parallel(wxssPrettier, wxmlPrettier, acssPrettier),
'eslint:all': parallel(wxssESLint, wxmlESLint, acssESLint),
};