命令入口 bin/vuepress.js
https://github.com/vuejs/vuepress/blob/v0.14.4/bin/vuepress.js
判断 node 版本
const chalk = require('chalk')
const semver = require('semver')
const requiredVersion = require('../package.json').engines.node
if (!semver.satisfies(process.version, requiredVersion)) {
console.log(chalk.red(
`\n[vuepress] minimum Node version not met:` +
`\nYou are using Node ${process.version}, but VuePress ` +
`requires Node ${requiredVersion}.\nPlease upgrade your Node version.\n`
))
process.exit(1)
}
chalk 是用于在终端环境格式化样式输出的包,这里在 Node 版本不匹配时输出了红色的提示文字。
semver (semantic versioner 语义化版本处理器) 是 npm 官方的版本字符串处理工具类。
这里用于验证 node 版本是否匹配。
// semver.satisfies(实际node版本, '>=8')
semver.satisfies(process.version, requiredVersion)
输出命令提示 解析参数
const program = require('commander')
program
.version(require('../package.json').version)
.usage('<command> [options]')
Commander.js 为 node.js 可执行程序提供了完整的解决方案。