小程序命令行工具
收藏
我的收藏

抖音小程序官方提供的小程序命令行工具 / CI 工具,可以通过该工具箱进行登录、预览、上传、提审、构建 NPM 等操作,支持命令行方式以及 NPM 直接调用方式。​

安装​

bash
复制
# 全局安装
npm install -g tt-ide-cli
#安装beta版本
npm install -g tt-ide-cli@beta

使用​

设置小程序 token​

设置小程序的 token,用于替代登录态,查看详情。​

命令行使用​

Bash
复制
Usage: tma set-app-config <appid> --token <token>
Example: tma set-app-config ttxxxxxxx --token 123123123

代码调用​

JavaScript
复制
const tma = require('tt-ide-cli');
tma.setAppConfig({
appid: 'ttxxxxxx',
config: {
token: '123123123',
},
});

设置全局配置​

主要用于配置工具的全局代理。​

命令行使用​

bash
复制
Usage: tma set-config [options]
Set tt-ide-cli config
Options:
--proxy <proxy> Set global proxy(配置全局代理)
--default Use default(恢复为默认配置)

代码调用​

以配置代理为例,在获取到代理服务器的域名和端口后即可将其配置到 CLI 中。​
JavaScript
复制
const tma = require('tt-ide-cli');
await tma.setConfig({
proxy: 'http://127.0.0.1:8899'; // 此地址仅为示例,具体地址需根据实际代理服务器确定。
});

创建新项目​

在当前目录下,以给定的项目名字创建一个空白的小程序项目。​

命令行使用​

bash
复制
Usage: tma create [options] <project-name>
Create a new project with given name in current folder
Options:
-f, --force Overwrite target directory if it exists

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
await tma.create({
projectName: "projectName",
force: false, // 是否覆盖目标文件夹
template: "rich", // 'rich' | 'empty'
// rich 为小程序能力展示 DEMO
// empty 为小程序空项目
targetDir: "targetDir",
});

打开已有项目​

在小程序开发者工具中打开给定目录的项目,如果给定的目录不存在,则仅打开开发者工具。​

命令行使用​

js
复制
Usage: tma open <project-path>
Open target project by path

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
await tma.open({
project: {
path: "projectPath",
},
});

登录​

登录到开发者平台。​

命令行使用​

bash
复制
Usage: tma login [options]
Login to the developer platform
Options:
-m, --mobile Login by mobile
-e, --email Login by email
-p, --proxy <proxy> Login with proxy
-h, --help output usage information

通过 email 登录​

命令行使用​

bash
复制
Usage: tma login-e [email] [password]
Login to the developer platform by E-mail
Options:
-p, --proxy <proxy> Login with proxy
-h, --help Output usage information

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
await tma.loginByEmail({
email: "email",
password: "password",
});

通过手机号登录​

通过调用tma.sendVerificationCodeToPhone({ phoneNumber: 'phoneNumber' })可以发送验证码​

代码调用​

JavaScript
复制
const tma = require('tt-ide-cli');
await tma.loginByPhone({
phoneNumber: 'phoneNumber',
code: 'code',
});

登出(清除本地 session)​

命令行使用​

bash
复制
Usage: tma logout
Logout and clear the session.

代码使用​

JavaScript
复制
const tma = require("tt-ide-cli");
await tma.logout();

预览小程序​

将项目上传后,扫码二维码来预览小程序(如果要设置 miniapp-query, miniapp-scene 等启动参数需要同时设置 miniapp-path 参数,否则将不会生效)。​

命令行使用​

bash
复制
Usage: tma preview [options] [project-path]
Preview project by remote
Options:
--disable-cache Preview project without local cache
-s, --small Use small QR Code, it may fail in some environments
-c, --copy Copy remote url to clipboard
-p, --proxy <proxy> Preview with proxy
--miniapp-path <path> Miniapp path
--miniapp-query <query> Miniapp query
--miniapp-scene <scene> Miniapp scene
--miniapp-launch-from <launchFrom> Miniapp launchFrom
--miniapp-location <location> Miniapp location
--qrcode-output <qrcodeOutputPath> Qrcode output path

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
// previewResult 返回值
interface ProjectQRCode {
expireTime: number; // 二维码过期时间
shortUrl: string; // 二维码短链
originSchema: string; // 二维码 schema
qrcodeSVG?: string; // 二维码 SVG
qrcodeFilePath?: string; // 二维码存储路径
useCache: boolean; // 是否命中并使用缓存
}
const previewResult: ProjectQRCode = await tma.preview({
project: {
path: "projectPath", // 项目地址
},
page: {
path: "", // 小程序打开页面
query: "", // 小程序打开 query
scene: "", // 小程序打开场景值
launchFrom: "", // 小程序打开场景(未知可填空字符串)
location: "", // 小程序打开位置(未知可填空字符串)
},
qrcode: {
format: "imageSVG", // imageSVG | imageFile | null | terminal
// imageSVG 用于产出二维码 SVG
// imageFile 用于将二维码存储到某个路径
// terminal 用于将二维码在控制台输出
// null 则不产出二维码
output: "", // 只在 imageFile 生效,填写图片输出绝对路径
options: {
small: false, // 使用小二维码,主要用于 terminal
},
},
cache: true, // 是否使用缓存
copyToClipboard: true, // 是否将产出的二维码链接复制到剪切板
});

上传项目​

把项目上传到开发者平台进行发布。​

命令行使用​

    app-changelog 为必填参数,其余为可选参数,其中 app-version 的默认值为前序版本号末位加一。​
    channel 为可选参数,可指定上传时的测试通道(值为大于 0 的整数)。​
bash
复制
Usage: tma upload [options] [project-path]
Upload project to the developer platform
Options:
-v, --app-version <appVersion> App version (eg: [major].[minor].[patch])
-c, --app-changelog <appChangelog> Changelog for this version
-p, --proxy <proxy> Update request proxy
-cp, --copy Copy remote url to clipboard
--qrcode-output <qrcodeOutputPath> Qrcode output path
--channel <channel> Test Channel

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
// uploadResult 返回值
interface ProjectQRCode {
expireTime: number; // 二维码过期时间
shortUrl: string; // 二维码短链
originSchema: string; // 二维码 schema
qrcodeSVG?: string; // 二维码 SVG
qrcodeFilePath?: string; // 二维码存储路径
useCache: boolean; // 是否命中并使用缓存
}
const uploadResult: ProjectQRCode = await tma.upload({
project: {
path: "projectPath", // 项目地址
},
qrcode: {
format: "imageSVG", // imageSVG | imageFile | null | terminal
// imageSVG 用于产出二维码 SVG
// imageFile 用于将二维码存储到某个路径
// terminal 用于将二维码在控制台输出
// null 则不产出二维码
output: "", // 只在 imageFile 生效,填写图片输出绝对路径
options: {
small: false, // 使用小二维码,主要用于 terminal
},
},
copyToClipboard: true, // 是否将产出的二维码链接复制到剪切板
changeLog: "changelog", // 本次更新日志
version: "1.0.0", // 本次更新版本,可选参数,默认值为前序版本号末位加一
needUploadSourcemap: true, // 是否上传后生成 sourcemap,推荐使用 true,否则开发者后台解析错误时将不能展示原始代码
channel: 1, // 可选参数,表示上传时的测试通道
});

小程序 host​

查询小程序支持的 host 。​

命令行使用​

js
复制
Usage: tma hosts [appid]
Get Audit Host List
js
复制
tma hosts tt07e3715e98c9xxxx

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
await tma.getAuditHostsList({ appid: "" });

小程序提审​

小程序提审。​
    小程序首次提审,会使用默认的图片作为审核的截图 推荐首次提审时,到开发者平台上传合规截图;​
    后续提审会复用前一次提审的截图;​

命令行使用​

bash
复制
Usage: tma audit [options] [appid]
Audit project in the developer platform
Options:
--host <hosts> Host Apps(eg: douyin,toutiao,tt_lite,ppx,xigua,huoshan,helo,musically,tiktok,douyin_lite,dou_shop,daliAI_coach,huoshan_lite,dcd,ocean_engine,fanqie,tt_elder,xiaohe,feiyu)
--auto-publish <boolean> Auto Publish After Audit
--channel <channel> Test channel
bash
复制
# 使用示范
tma audit --host douyin,toutiao,tt_lite tt07e3715e98c9xxxx

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
// 提审
await tma.audit({
appid: "",
host: [], // douyin,toutiao,tt_lite,ppx,xigua,huoshan,helo,musically,tiktok,douyin_lite,dou_shop,daliAI_coach,huoshan_lite,dcd,ocean_engine,fanqie,tt_elder,xiaohe,feiyu
autoPublish: true, // 是否审核通过后自动发布
});

获取小程序信息​

命令行使用​

js
复制
Usage: tma get-meta [options] [appid]
Get appid meta

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
// metaResult 返回值
interface MiniappMetaInfo {
version: String; // 线上小程序版本号
}
const metaResult: MiniappMetaInfo = await tma.getMeta({
appid: "appid",
});

构建 NPM​

对应开发者工具 构建 NPM 功能。​

命令行使用​

bash
复制
Usage: tma build-npm [options]
Build npm
Options:
--project-path Project path

代码调用​

JavaScript
复制
const tma = require("tt-ide-cli");
await tma.buildNpm({
project: {
path: "projectPath",
},
});