Skip to content

引入

ts
import {
  execCommand,
  execCommandAll,
  nodePost,
  nodeGet,
  nodePut
} from 't-comm';

// 不支持 tree-shaking 的项目
import {
  execCommand,
  execCommandAll,
  nodePost,
  nodeGet,
  nodePut
} from 't-comm/lib/node/index';

// 只支持 ESM 的项目
import {
  execCommand,
  execCommandAll,
  nodePost,
  nodeGet,
  nodePut
} from 't-comm/es/node/index';

execCommand(command, root, options)

描述

在 Node.js 中调用 child_process.execSync 执行命令 该方法会对输出结果进行处理,默认只返回指定行的内容(默认第一行)

参数

参数名描述
command

要执行的命令字符串

root

执行命令的工作目录,默认为当前工作目录

options

配置选项,可以是字符串(stdio)或对象

options.stdio

标准输入输出配置,默认为 'pipe'

options.line

返回结果的行号,默认为 0(第一行),设置为 -1 返回全部内容

options.throwError

是否在命令执行失败时抛出错误,默认为 false

返回:

命令执行结果字符串

示例

ts
// 获取 git 分支名(第一行)
const branch = execCommand('git branch', '/path/to/repo');

// 获取完整输出
const output = execCommand('ls -la', './', { line: -1 });

// 自定义 stdio
const result = execCommand('npm install', './', { stdio: 'inherit' });

execCommandAll(command, root, stdio)

描述

在 Node.js 中调用 child_process.execSync 执行命令并返回第一行结果 该方法是 execCommand 的简化版本,始终返回输出的第一行

参数

参数名描述
command

要执行的命令字符串

root

执行命令的工作目录,默认为当前工作目录

stdio

标准输入输出配置,默认为 'pipe'

返回:

命令执行结果的第一行(去除首尾空格)

示例

ts
// 获取当前 git 分支
const branch = execCommandAll('git rev-parse --abbrev-ref HEAD');

// 获取 Node 版本
const nodeVersion = execCommandAll('node --version');

nodePost()

描述

获取 Promise 化的 HTTP POST 请求方法 将 request.post 方法转换为返回 Promise 的异步函数

参数

返回:

Promise 化的 POST 请求函数

示例

ts
const post = nodePost();
const response = await post({
  url: 'https://api.example.com/data',
  json: { key: 'value' }
});

nodeGet()

描述

获取 Promise 化的 HTTP GET 请求方法 将 request.get 方法转换为返回 Promise 的异步函数

参数

返回:

Promise 化的 GET 请求函数

示例

ts
const get = nodeGet();
const response = await get('https://api.example.com/data');

nodePut()

描述

获取 Promise 化的 HTTP PUT 请求方法 将 request.put 方法转换为返回 Promise 的异步函数

参数

返回:

Promise 化的 PUT 请求函数

示例

ts
const put = nodePut();
const response = await put({
  url: 'https://api.example.com/data/123',
  json: { key: 'updated value' }
});