zoukankan      html  css  js  c++  java
  • nodejs实现命令行工具

    为什么使用nodejs实现命令行工具

    Node.js是一个基于事件驱动I/O的JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
    众所周知,javascript已经成为最流行的编程语言,以前javascript只是用来实现web前端功能,但是nodejs的出现使得javascript不仅可以服务于web的后端,还能够作为通用的脚本语言,类似python/perl一样,实现更多的桌面相关的任务。

    nodejs除了于web框架一起实现web后端的功能,作为devops我们可以使用nodejs做很多其他的事情:

    • 遍历目录,读写json和yaml配置文件;
    • 异步执行,或者多进程调用外部系统命令;
    • http请求,解析,或者生成web;
    • 查询数据库mango,redis,其他数据库;
    • 解析日志,监听问题,发送邮件;

    安装nodejs

    wget https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz
    tar -xvf   node-v12.18.0-linux-x64.tar.xz   
    mv node-v12.18.0-linux-x64  nodejs 
    ln -s /app/software/nodejs/bin/npm /usr/local/bin/ 
    ln -s /app/software/nodejs/bin/node /usr/local/bin/  
    国内用户使用淘宝镜像:  
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    然后使用cnpm来安装其他的模块
    

    实现第一个helloworld的命令

    #!/usr/bin/env node
    console.log('hello world');
    增加权限
    chmod u+x yourscript  
    运行./yourscript  
    hello world
    

    简单的脚本参数解析

    process.argv中包含了所有的参数  
    脚本中增加输入来查看参数:console.log(process.argv)  
    执行脚本:./yourscript -g -f   
    输出为:[ 'node', '/home/george/yourscript', '-f', '-g' ]  
    

    程序的退出

    if (err) {
      process.exit(1);
    } else {
      process.exit(0);
    }
    

    将命令行工具打包为可安装的npm包

    生成package.json:npm init
    修改package.json:
      "name": "helloworld”,
      "author": "cicdops",
      "license": "Apache-2.0",
    + "bin": {
    +   "helloworld": "./index.js"
    + }
    
    本地安装:
    npm install -g
    $ helloworld
    Hello, world!
    其他人可以通过命令安装:npm install -g helloworld
    

    参考:

    https://blog.developer.atlassian.com/scripting-with-node/
    https://shapeshed.com/command-line-utilities-with-nodejs/

  • 相关阅读:
    win10 UWP button
    内网分享资源
    内网分享资源
    CF724F Uniformly Branched Trees
    win10 UWP FlipView
    win10 UWP FlipView
    win10 UWP FlipView
    搭建阿里云 centos mysql tomcat jdk
    搭建阿里云 centos mysql tomcat jdk
    win10 UWP 申请微软开发者
  • 原文地址:https://www.cnblogs.com/itech/p/13080374.html
Copyright © 2011-2022 走看看