1 | const program = require('commander')
|
2 | const { CLIEngine } = require('eslint')
|
3 |
|
4 | const { logSuccess } = require('../lib/log')
|
5 | const tofurc = require('../lib/get-config')()
|
6 |
|
7 | program
|
8 | .option('-f, --fix', '自动修复')
|
9 | .option('-q, --quiet', '安静地校验')
|
10 | .parse(process.argv)
|
11 |
|
12 | let rules = require('../webpack/rules')
|
13 | if (tofurc && tofurc.rules) {
|
14 | rules = Object.assign({}, rules, tofurc.rules)
|
15 | }
|
16 |
|
17 | const linter = new CLIEngine({
|
18 | fix: program.fix,
|
19 | ignorePattern: [],
|
20 | useEslintrc: false,
|
21 | parser: 'babel-eslint',
|
22 | parserOptions: {
|
23 | sourceType: 'module'
|
24 | },
|
25 | cwd: process.cwd(),
|
26 | env: ['browser'],
|
27 | plugins: [
|
28 | 'html'
|
29 | ],
|
30 | rules
|
31 | })
|
32 |
|
33 | const report = linter.executeOnFiles(['src/**/*.js', 'src/**/*.vue'])
|
34 | CLIEngine.outputFixes(report)
|
35 | const formatter = require("eslint-friendly-formatter")
|
36 |
|
37 | console.log(formatter(report.results))
|
38 |
|
39 | if (report.errorCount) {
|
40 | process.exit(1)
|
41 | } else if (!program.quiet) {
|
42 | logSuccess('Perfect code!')
|
43 | }
|