# dao-cli **Repository Path**: iiimix/dao-cli ## Basic Information - **Project Name**: dao-cli - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-14 - **Last Updated**: 2024-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cli 命令行工具来管理自己的项目模板 ## 创建项目 ```shell mkdir dadao-cli cd dadao-cli npm init -y ``` ## 安装一些命令工具常用的包 ```shell npm install commander download-git-repo ora handlebars figlet clear chalk -s ``` ## 注册全局命令 新增bin/index.js ```shell touch bin/index.js ``` 在package.json增加bin命令 ```json { "bin": { "dadao": "./bin/index.js" } } ``` 然后执行 npm link,等执行完成之后,在命令行输入 tcli 就能执行 ./bin/index.js 文件了 npm link 是将本地包进行临时的全局安装,相当于 npm install -g xxx,会引起全局污染,有可能会全局安装失败,需要管理员权限 测试一下是否有效,运行命令`dadao` ``` hello dadao generator ``` ## 创建node命令 ./bin/index.js ```js // 引入自定义命令组件 const { program } = require('commander') // 设置版本号 program.version(require('../package').version) // 设置 init 命令,name 为参数 program.command('init ') .description('init project') // 设置init命令的描述 .option('-s, --session', 'session param') // 设置参数 .action((name, params) => { // 执行逻辑 console.log('params => ', name) console.log('params.session => ', params.session) }) // 命令的执行其实是 commander 解析 process.argv 参数来启动 program.parse(process.argv); ``` 测试命名执行效果 `dadao init name -s` 成功输出name, true ## 更新action为clone项目 新建lib/init.js