美文网首页
nodejs从零开发CLI工具

nodejs从零开发CLI工具

作者: 变态的小水瓶 | 来源:发表于2019-12-15 23:21 被阅读0次

CLI简析

Command Line Interface,是一种通过命令行来在运行一些代码,来实现某些功能的工具或者应用,如我们前端开发的过程中使用到的,vue-cli,webpack等等,使用他们可以减少开发中的一些低级重复劳动,或者规范开发工作流,提高开发效率。

功能目标

1.newman create XXX:可实现命令行初始化项目,一键生成应用模版;
2.newman refresh :路由自动生成;
3.newman publish "./dist" : 上传打包在dist目录下的前端包到阿里云oss;
(当然也可以上传其他文件,此处需要开通阿里云oss服务)

开发步骤

1.初始化项目

npm init -y

2.package.json中设置bin入口文件

// package.json
{
  "name": "newman-cli",
  "version": "1.0.1",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "bin": {
    "newman": "./bin/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "commander": "^4.0.1",
    "download-git-repo": "^3.0.2",
    "handlebars": "^4.5.3",
    "ora": "^4.0.3"
  }
}
// ./bin/index.js
#!/usr/bin/env node // 首行提示操作系统用node运行该文件

3.运行npm link

将当前应用入口连接到系统指定位置,使其可全局使用

4.业务功能开发

./bin/index.js 中的内容如下,通过commander实现不同命令调用不同的操作。
而如下的功能文章中不过多赘述,可以克隆GitHub代码来看:
git clone https://github.com/Amy-Tong126/newman-cli.git

  • 创建项目
    就是通过download-git-repo去github上下载对应库的代码;
  • 生成路由功能
    就是读取当前src下的page文件夹下的组件,然后根据路由模版文件,通过handlebars库重新渲染生成路由配置文件;
  • 上传发布功能
    就是通过ali-oss的sdk实现上传本地文件;
#!/usr/bin/env node
const program = require("commander");
const { create, refresh, publish } = require("../lib/api");

program.version(require("../package").version)
console.log(process.argv)
// 创建项目
program
    .command("create <name>")
    .description("create your project")
    .action(name => {
        create(name);
    })
// 刷新自动更新路由
program
    .command('refresh')
    .description('refresh routers...')
    .action(refresh)
// 上传到oss
program
    .command('publish <filePath>')
    .description('upload assets to CDN and git commit && push')
    .action((filePath) => {
        console.log("上传包");
        publish(filePath)
    });

program.parse(process.argv);

5.发布到npm

1.先把之前淘宝镜像的地址重置回来;
2.登录npm
3.执行publish发布操作
4.重新设置淘宝镜像
要注意的是:在发布前你需要,注册npm账号,并且邮箱确认。

#!/usr/bin/env bash
npm config get registry # 检查仓库镜像库
npm config set registry=http://registry.npmjs.org
echo '请进⾏行行登录相关操作:'
npm login # 登陆
echo "-------publishing-------"
npm publish # 发布
npm config set registry=https://registry.npm.taobao.org # 设置为淘宝镜像 echo "发布完成"
exit

总结

灵感来源于近期业务上接触到一个cli工具,可以实现一键创建项目和发布项目。同时,最近整理nodejs学习资料,就自创了一个low版的cli,记录一下,也期望后续可以完善的更好。

相关文章

网友评论

      本文标题:nodejs从零开发CLI工具

      本文链接:https://www.haomeiwen.com/subject/hxwlnctx.html