最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • nodejs从零开发CLI工具

    正文概述 掘金(变态的小水瓶)   2021-01-05   416

    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 github.com/Amy-Tong126…

    • 创建项目

    就是通过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工具

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元