commander-scripts-ivan
Version:
40 lines (32 loc) • 1.28 kB
JavaScript
/* eslint-disable no-console, import/no-unresolved */
// eslint-disable-line
var chalk = require('chalk') // eslint-disable-line
var semver = require('semver') // eslint-disable-line
// eslint-disable-next-line prefer-arrow-callback
process.on('unhandledRejection', function getError(err) {
console.error(chalk.red('UnhandledRejection'))
console.error(err)
throw err
})
// 检测Node.js版本前运行代码纯ES5
var packageJson = require('./package.json') // eslint-disable-line
if (!semver.satisfies(process.version, packageJson.engines.node)) {
console.error(
chalk.red('You are running Node %s.\n' +
'Excute scripts requires Node %s or higher. \n' +
'Please update your version of Node.'),
process.version,
packageJson.engines.node,
)
process.exit(1)
}
const commander = require('commander')
// 将要创建项目目录名存储下来
commander.name(packageJson.name)
.version(packageJson.version)
.description('IvanPeng email: 15527781897@163.com')
.command('starter <project-directory> [options...]', 'starter new web project use web-scripts-ivan')
.command('copy <project-directory> [options...]', 'copy new web project from <craete react app>')
.alias('s')
.parse(process.argv)