如何搭建一个自己的 cli 脚手架

1.npm init -y // 快速初始化一个项目

2.新建命令行的入口文件 /bin/cli.js

  #! /usr/bin/env node        //用于解释程序的脚本
  console.log('Hello World!') //为了测试是否正常

3.在package.json中新建bin对象,存放之后需要执行的js文件

  {
   ....,
   "bin": {
     "temp-cli": "./bin/cli.js" 
   }
   ....
  }

4.将npm包链接到全局执行环境: npm link
 Mac电脑: sudo nom link

5.执行 temp-cli 命令
 输出:Hello World!
 
6.cli 工具库简介【安装: cnpm i commander inquirer download-git-repo ora 】

1)commander: 命令行交互工具 [https://github.com/tj/commander.js]

   const program = require('commander');
   // 获取版本信息
   program.version(require('../package.json').version);
   // process.argv: 可以以数组形式获取命令行参数
   program.parse(process.argv);

命令:temp-cli -h
Usage: temp-cli [options]
Options:
-V, --version output the version number
-h, --help display help for command

2)inquirer: 交互式命令行工具 [https://github.com/SBoudrias/Inquirer.js]

#!/usr/bin/env node
const program = require('commander');
const inquirer = require('inquirer');
const initAction = () => {
    inquirer.prompt([
        {
            type: 'input',
            message: '请输入项目名称:',
            name: 'name'
        }
    ]).then(answers => {
        console.log('项目名为:', answers.name);
        console.log('正在拷贝项目,请稍等')
    });
}
// 获取版本信息
program.version(require('../package.json').version);
program.command('init').description('创建项目').action(initAction);
// process.argv: 可以以数组形式获取命令行参数
program.parse(process.argv);

3)download-git-repo: 下载远程模版 [https://www.npmjs.com/package/download-git-repo]

4)ora: 用于显示加载中等待提示 [https://github.com/sindresorhus/ora]

7.指定 git 地址
生成需要下载指定地址的项目;,需要执行 shell 脚本,cnpm i shelljs

参考地址:从零搭建一个cli工具

你可能感兴趣的:(NPM,vue,npm,前端,node.js)