mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-25 10:56:35 +08:00
66 lines
1.3 KiB
TypeScript
66 lines
1.3 KiB
TypeScript
import execa from 'execa';
|
|
import { ora } from '../common/logger';
|
|
import { SCRIPT_EXTS } from '../common/constant';
|
|
|
|
type RunCommandMessages = {
|
|
start: string;
|
|
succeed: string;
|
|
failed: string;
|
|
};
|
|
|
|
function runCommand(
|
|
cmd: string,
|
|
options: string[],
|
|
messages: RunCommandMessages
|
|
) {
|
|
const spinner = ora(messages.start).start();
|
|
|
|
return new Promise(resolve => {
|
|
execa(cmd, options, {
|
|
env: { FORCE_COLOR: true },
|
|
})
|
|
.then(() => {
|
|
spinner.succeed(messages.succeed);
|
|
resolve(true);
|
|
})
|
|
.catch((err: any) => {
|
|
spinner.fail(messages.failed);
|
|
console.log(err.stdout);
|
|
resolve(false);
|
|
});
|
|
});
|
|
}
|
|
|
|
function eslint() {
|
|
return runCommand(
|
|
'eslint',
|
|
['./src', '--fix', '--ext', SCRIPT_EXTS.join(',')],
|
|
{
|
|
start: 'Running eslint...',
|
|
succeed: 'ESLint Passed.',
|
|
failed: 'ESLint failed!',
|
|
}
|
|
);
|
|
}
|
|
|
|
function stylelint() {
|
|
return runCommand(
|
|
'stylelint',
|
|
['src/**/*.css', 'src/**/*.vue', 'src/**/*.less', 'src/**/*.sass', '--fix'],
|
|
{
|
|
start: 'Running stylelint...',
|
|
succeed: 'Stylelint Passed.',
|
|
failed: 'Stylelint failed!',
|
|
}
|
|
);
|
|
}
|
|
|
|
export async function lint() {
|
|
const eslintPassed = await eslint();
|
|
const stylelintPassed = await stylelint();
|
|
|
|
if (!eslintPassed || !stylelintPassed) {
|
|
process.exit(1);
|
|
}
|
|
}
|