Skip to content

Commit ee6b0d5

Browse files
committed
feat(lint): 添加可配置lint文件类型
1 parent f017f5f commit ee6b0d5

File tree

2 files changed

+43
-10
lines changed

2 files changed

+43
-10
lines changed

lib/commands/lint.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@ exports.usage = "代码质量检测";
88
exports.setOptions = function (optimist) {
99
optimist.alias('d', 'dir');
1010
optimist.describe('d', '检测特定目录/文件');
11+
optimist.alias('t', 'type');
12+
optimist.describe('t', '检测特定目录/文件');
1113
};
1214

1315
exports.run = function (options) {
1416
var cwd = options.cwd,
1517
project = this.project,
16-
dir = options.d || options.dir;
18+
dir = options.d || options.dir,
19+
lintType = options.t || options.type;
1720

1821
var isGoingToContinue = true;
1922

@@ -48,12 +51,26 @@ exports.run = function (options) {
4851
});
4952
}
5053

51-
if (isGoingToContinue) {
52-
async.series([function (callback) {
54+
// lint type
55+
var lintFileTypes = ['js', 'css'];
56+
if (lintType) {
57+
if (lintFileTypes.indexOf(lintType) > -1) {
58+
lintFileTypes = [lintType];
59+
} else {
60+
error('lintType只能为"js"或"css"');
61+
process.exit(1);
62+
}
63+
}
64+
var lintFuncs = lintFileTypes.map(function (lintFileTypeItem) {
65+
return lintFileTypeItem === 'js' ? function (callback) {
5366
return project.lint(dir, callback);
54-
}, function (callback) {
67+
} : function (callback) {
5568
return project.lintCss(dir, callback);
56-
}], function (err, results) {
69+
};
70+
});
71+
72+
if (isGoingToContinue) {
73+
async.series(lintFuncs, function (err, results) {
5774
if (!err) {
5875
if (results[0] && results[1]) {
5976
success('All files complete without error.');

src/commands/lint.js

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@ exports.usage = "代码质量检测";
88
exports.setOptions = (optimist) => {
99
optimist.alias('d', 'dir');
1010
optimist.describe('d', '检测特定目录/文件');
11+
optimist.alias('t', 'type');
12+
optimist.describe('t', '检测特定目录/文件');
1113
};
1214

1315
exports.run = function (options) {
1416
let cwd = options.cwd,
1517
project = this.project,
16-
dir = options.d || options.dir;
18+
dir = options.d || options.dir,
19+
lintType = options.t || options.type;
1720

1821
let isGoingToContinue = true
1922

@@ -48,11 +51,24 @@ exports.run = function (options) {
4851
})
4952
}
5053

54+
// lint type
55+
let lintFileTypes = ['js', 'css']
56+
if(lintType) {
57+
if(lintFileTypes.indexOf(lintType) > -1) {
58+
lintFileTypes = [lintType]
59+
} else {
60+
error('lintType只能为"js"或"css"')
61+
process.exit(1)
62+
}
63+
}
64+
const lintFuncs = lintFileTypes.map((lintFileTypeItem) => {
65+
return lintFileTypeItem === 'js'
66+
? (callback) => project.lint(dir, callback)
67+
: (callback) => project.lintCss(dir, callback)
68+
})
69+
5170
if(isGoingToContinue) {
52-
async.series([
53-
(callback) => project.lint(dir, callback),
54-
(callback) => project.lintCss(dir, callback)
55-
], (err, results) => {
71+
async.series(lintFuncs, (err, results) => {
5672
if (!err) {
5773
if (results[0] && results[1]) {
5874
success('All files complete without error.');

0 commit comments

Comments
 (0)