@wgoo/cli
Version:
Wgoo Cli 是一个 React 组件库构建工具,通过 Wgoo Cli 可以快速搭建一套功能完备的 React 组件库。
64 lines (55 loc) • 1.39 kB
JavaScript
const execa = require('execa');
const { ora } = require('../common/logger');
const { SCRIPT_EXTS, SRC_DIR } = require('../common/constant');
// type messages = {
// start: string;
// succeed: string;
// failed: string;
// };
function runCommand(cmd, options, messages) {
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) => {
spinner.fail(messages.failed);
console.log(err.stdout);
resolve(false);
});
});
}
function eslint() {
return runCommand(
'eslint',
[SRC_DIR, '--fix', '--ext', [SCRIPT_EXTS, '.md'].join(',')],
{
start: 'Running eslint...',
succeed: 'ESLint Passed.',
failed: 'ESLint failed!',
}
);
}
function stylelint() {
return runCommand(
'stylelint',
[`${SRC_DIR}/**/*.css`, `${SRC_DIR}/**/*.less`, `${SRC_DIR}/**/*.sass`, '--fix'],
{
start: 'Running stylelint...',
succeed: 'Stylelint Passed.',
failed: 'Stylelint failed!',
}
);
}
async function lint() {
const eslintPassed = await eslint();
const stylelintPassed = await stylelint();
if (!eslintPassed || !stylelintPassed) {
process.exit(1);
}
}
module.exports = { lint };