Skip to content

引入

ts
import {
  DeployPagesOptions,
  DeployPagesResult,
  normalizeCname,
  toFileEntries,
  readFileContent,
  splitIntoBatches,
  request,
  checkSiteExists,
  listRemoteFiles,
  matchPrefix,
  normalizeCleanPrefix,
  deleteRemoteFiles,
  deployPages
} from 't-comm';

// 不支持 tree-shaking 的项目
import {
  DeployPagesOptions,
  DeployPagesResult,
  normalizeCname,
  toFileEntries,
  readFileContent,
  splitIntoBatches,
  request,
  checkSiteExists,
  listRemoteFiles,
  matchPrefix,
  normalizeCleanPrefix,
  deleteRemoteFiles,
  deployPages
} from 't-comm/lib/deploy-pages/index';

// 只支持 ESM 的项目
import {
  DeployPagesOptions,
  DeployPagesResult,
  normalizeCname,
  toFileEntries,
  readFileContent,
  splitIntoBatches,
  request,
  checkSiteExists,
  listRemoteFiles,
  matchPrefix,
  normalizeCleanPrefix,
  deleteRemoteFiles,
  deployPages
} from 't-comm/es/deploy-pages/index';

DeployPagesOptions

描述:部署配置选项

参数

deployPagesOptions.cname : string

域名,如 t-comm.pages.woa.com 或简写 t-comm

Kind: instance property of DeployPagesOptions

deployPagesOptions.directory : string

要部署的本地目录路径

Kind: instance property of DeployPagesOptions

deployPagesOptions.apiKey : string

API Key,不传则从环境变量 OA_PAGES_API_KEY 获取

Kind: instance property of DeployPagesOptions
Optional:

deployPagesOptions.visibility : 'public' | 'tof' | 'git' | 'whitelist'

访问权限:public(免登录) | tof(需登录) | git(仅 git 成员) | whitelist(白名单)。新建网站默认 whitelist

Kind: instance property of DeployPagesOptions
Optional:

deployPagesOptions.description : string

网站描述(最多 100 个字)

Kind: instance property of DeployPagesOptions
Optional:

deployPagesOptions.dryRun : boolean

仅预览,不实际上传

Kind: instance property of DeployPagesOptions
Optional:

deployPagesOptions.cleanBeforeDeploy : boolean

部署前是否清理远程已有文件。 适用于历史文件过多导致后续上传失败的场景。 默认 false。

Kind: instance property of DeployPagesOptions
Optional:

deployPagesOptions.cleanPrefix : string | Array

仅清理匹配前缀的远程文件(可传单个或多个前缀)。 仅在 cleanBeforeDeploy 为 true 时生效,未传则清理全部远程文件。 例如 'assets/' 仅清理 assets 目录下的文件。

Kind: instance property of DeployPagesOptions
Optional:

DeployPagesResult

描述:部署结果

参数

deployPagesResult.success : boolean

是否成功

Kind: instance property of DeployPagesResult

deployPagesResult.url : string

网站 URL

Kind: instance property of DeployPagesResult

deployPagesResult.adminUrl : string

管理页面 URL

Kind: instance property of DeployPagesResult

deployPagesResult.cname : string

完整域名

Kind: instance property of DeployPagesResult

deployPagesResult.totalFiles : number

文件总数

Kind: instance property of DeployPagesResult

deployPagesResult.totalBatches : number

批次数

Kind: instance property of DeployPagesResult

deployPagesResult.deletedFiles : number

部署前清理的远程文件数(仅在 cleanBeforeDeploy=true 时有意义)

Kind: instance property of DeployPagesResult
Optional:

deployPagesResult.error : string

错误信息(失败时)

Kind: instance property of DeployPagesResult
Optional:

normalizeCname()

描述:补全域名后缀

参数

toFileEntries()

描述:将 collectFilesSync 返回的绝对路径列表转换为 FileEntry 列表

参数

readFileContent()

描述:读取文件内容,二进制文件自动 base64 编码

参数

splitIntoBatches()

描述:将文件列表按大小分批

参数

request()

描述:发送请求到 OA Pages API

参数

checkSiteExists()

描述:检查网站是否已存在

参数

listRemoteFiles()

描述:获取远程网站的所有文件路径

参数

matchPrefix()

描述:判断文件路径是否匹配任一前缀

参数

normalizeCleanPrefix()

描述:将 cleanPrefix 选项归一化为数组

参数

deleteRemoteFiles()

描述:删除远程网站文件,自动按批次发送,避免单次请求过大

参数

deployPages(options)

描述:部署本地目录到 OA Pages

参数

参数名描述
options部署配置

返回: 部署结果

示例

ts
import { deployPages } from 't-comm';

// 基本用法
const result = await deployPages({
  cname: 't-comm.pages.woa.com',
  directory: 'docs/.vitepress/dist',
  visibility: 'public',
});

// 传入 API Key(不依赖环境变量)
const result = await deployPages({
  cname: 't-comm',
  directory: './dist',
  apiKey: 'oa-pages-key-xxxxxxxx',
  visibility: 'tof',
  description: '我的网站',
});

// 部署前先清理远程历史文件(避免容量超限上传失败)
await deployPages({
  cname: 't-comm.pages.woa.com',
  directory: './dist',
  cleanBeforeDeploy: true,
});

// 仅清理 assets/ 前缀下的文件,再上传
await deployPages({
  cname: 't-comm.pages.woa.com',
  directory: './dist',
  cleanBeforeDeploy: true,
  cleanPrefix: 'assets/',
});