从零构建一个操作shell的node插件并打包发布

本文详述如何从零构建一个基于Node.js的shell操作插件,涵盖child_process.exec的使用,文件结构设定,错误日志处理,项目打包及通过webpack配置,最后讲解npm发布流程。通过实例,帮助理解相关模块和发布过程。
摘要由CSDN通过智能技术生成

今天我们来从零构建一个简易的node脚本插件,方便操作shell,构建自己的脚本工具,帮助大家理解一些node模块,webpack打包过程及npm发布过程。

child_process.exec

要使用node操作shell,首先要了解node中的child_process.exec,简单的来讲,exec会开启一个shell,并且执行输入的命令,就像是大家使用git bash来执行某些命令,如npm init。介绍完了,show code。

文件结构

首先创建一个结构如下的文件夹,并执行npm init -y

├─src
  └─index.js

插件编写

在index.js文件中,编写主要代码。

首先引入所需要的exec

const util = require('util');
const exec = util.promisify(require('child_process').exec);

一般所需要的即三个参数,执行的命令行(command),执行的目录(cwd),执行的超时时间(timeout),即

exec(command, {
    cwd: path || null, timeout: timeout || 0 })

执行命令的代码如下所示:

/**
 * @name: 执行命令行
 * @param {Array} cmd/执行命令语句
 * @param {String} path/执行命令的路径
 * @param {Number} timeout/执行命令的超时时间
 * @return: {Boolean} 是否成功
 */
const shell = async (arr) => {
   
  for (let i = 0; i < arr.length; i++) {
   
    const {
    cmd, path, timeout } = arr[i]
    // 组装执行命令
    const command = cmd.reduce((total, item, index) => {
   
      if (index === 0) {
   
        return total + item
      } else {
   
        return total + ` && ${
     item}`
      }
    }, '')
    const {
    error, stdout, stderr } = await exec(command, {
    cwd
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值