使用 JS 开发命令行程序
书写脚本
新建一个脚本,如 touch maomao.js,内容如下
#!/usr/bin/env node
console.log('脚本')
#!/usr/bin/env node用来表示它是一个 node 脚本
然后在命令行输入脚本路径运行即可
无路径运行
在 package.json 配置 bin 选项,如
"bin": {
"maomao": "maomao.js"
},
然后运行 npm link 即可
使用 Inquirer.js 进行命令行交互
#!/usr/bin/env node
const inquirer = require('inquirer')
const log = console.log
const promptList = [
{
type: 'list',
message: '请选择发布环境:',
name: 'env',
choices: [
{
name: '开发环境',
value: 'dev'
},
{
name: '测试环境',
value: 'test'
},
{
name: '预发环境',
value: 'pre'
},
{
name: '生产环境',
value: 'prod'
}
]
}
]
inquirer.prompt(promptList).then(({ env }) => {
log('你选择了:' + env)
})
使用 chalk 美化命令行输出
#!/usr/bin/env node
const chalk = require('chalk')
const log = console.log
log(chalk.blue('这是蓝色输出'))
使用 shelljs 运行系统命令或 npm 脚本
const shell = require('shelljs')
shell.exec('npm run dev')
完整案例(整合发布)
#!/usr/bin/env node
const inquirer = require('inquirer')
const chalk = require('chalk')
const shell = require('shelljs')
const log = console.log
const promptList = [
{
type: 'list',
message: '请选择发布环境:',
name: 'env',
choices: [
{
name: '开发环境',
value: 'dev'
},
{
name: '测试环境',
value: 'test'
},
{
name: '预发环境',
value: 'pre'
},
{
name: '生产环境',
value: 'prod'
}
]
}
]
inquirer.prompt(promptList).then(({ env }) => {
log(chalk.blue('正在运行: npm run ' + env))
shell.exec('npm run ' + env)
})

相关库
具体 api 可以查看对应库
使用 JS 开发命令行程序
书写脚本
新建一个脚本,如
touch maomao.js,内容如下#!/usr/bin/env node用来表示它是一个 node 脚本然后在命令行输入脚本路径运行即可
无路径运行
在
package.json配置bin选项,如然后运行
npm link即可使用
Inquirer.js进行命令行交互使用 chalk 美化命令行输出
使用 shelljs 运行系统命令或 npm 脚本
完整案例(整合发布)
相关库
具体
api可以查看对应库Unix Shell在Node.js API层的轻量级实现,可以很方便的调用系统命令