1 | import * as path from 'path'
|
2 | import { CLIEngine } from 'eslint'
|
3 | import * as glob from 'glob'
|
4 |
|
5 | export default function ({ projectConfig }) {
|
6 | const appPath = process.cwd()
|
7 | const globPattern = glob.sync(path.join(appPath, '.eslintrc*'))
|
8 |
|
9 | const eslintCli = new CLIEngine({
|
10 | cwd: process.cwd(),
|
11 | useEslintrc: Boolean(globPattern.length),
|
12 | baseConfig: {
|
13 | extends: [`taro/${projectConfig.framework}`]
|
14 | }
|
15 | })
|
16 |
|
17 | const sourceFiles = path.join(process.cwd(), projectConfig.sourceRoot, '**/*.{js,ts,jsx,tsx}')
|
18 | const report = eslintCli.executeOnFiles([sourceFiles])
|
19 | const formatter = eslintCli.getFormatter()
|
20 |
|
21 | return {
|
22 | desc: '检查 ESLint (以下为 ESLint 的输出)',
|
23 | raw: formatter(report.results)
|
24 | }
|
25 | }
|