Package Exports
- alipay-dev
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (alipay-dev) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
简介
alipaydev 开发工具提供命令行方式进行开发,提高研发效率,提供小程序各种便捷工具。
支持命令行和SDK方式引入
全局安装
npm install alipay-dev -gCLI命令
命令索引
可以通过 alipaydev -h 查看所有命令帮助,并且每个命令可通过增加 -h 参数查看明细说明
| 分类 | 说明 | 命令 |
|---|---|---|
| 配置 | 工具初始化配置 | alipaydev config set |
| 展示工具配置信息 | alipaydev config list |
|
| 小程序 | 小程序列表 | alipaydev mini list |
| 小程序预览 | alipaydev mini preview |
|
| 小程序上传 | alipaydev mini upload |
|
| demo下载 | alipaydev mini demo |
|
| 云开发 | 云服务空间列表 | alipaydev cloud space list |
| 空间下的云函数列表 | alipaydev cloud function list |
|
| 启动本地云函数运行环境 | alipaydev cloud function dev |
|
| 上传云函数 | alipaydev cloud function deploy |
|
| 下载云函数 | alipaydev cloud function download |
|
| 密钥 | 密钥生成 | alipaydev key create |
| 密钥匹配检测 | alipaydev key match |
|
| 密钥转换 | alipaydev key convert |
在线视频演示
支付宝服务群
工具初始化配置
操作流程:
- 运行
alipaydev key create -w生成密钥(pkcs8 rsa2 格式) - 运行
alipaydev key upload自动打开浏览器配置页或直接前往“工具密钥设置” 页面进行工具公钥和IP白名单(可选)设置。将第一步生成的“公钥”在此页面配置,设置完成后系统会为您分配一个工具ID(toolId) - 工具密钥设置页面配置完成后,运行配置命令,设置第二步系统分配的工具Id(toolId)
alipaydev config set -i 工具ID参数说明
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -i, --tool-id | 是 | 工具id | 无 |
| -k, --private-key | 否 | 工具私钥 | 无 |
appId和spaceId切换
以下所有命令,需要传入--app-id和--space-id, 都可以提前选定
# 可以切换当前操作的小程序
alipaydev mini list
# 可以切换当前操作的云服务空间
alipaydev cloud space list
# 查看工具的配置信息
alipaydev config list小程序相关
小程序预览
示例
# 将 /Users/workspace/Demos/todos 目录下的小程序源码上传预览
alipaydev mini preview -p /Users/workspace/Demos/todos
# 默认启动页为pages/index/index,参数q=v&id=33,小程序launch参数为name=demo&fromId=11
alipaydev mini preview -p /Users/workspace/Demos/todos -i 20190666750666 --page 'pages/index/index?q=v&id=33' --launch 'name=demo&fromId=11'CLI参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -p, --project | 是 | 项目目录 | 无 |
| -i, --app-id | 否 | 小程序appId | 无 |
| --page | 否 | 落地页面, 如:"pages/index/index?q=v&id=33" | 无 |
| --launch | 否 | app.js的onLaunch中取得, 如: "name=demo&fromId=11" | 无 |
| -f, --qrcode-format | 否 | 返回二维码文件的格式, 如: 'terminal','base64','image' | image |
| -o, --qrcode-output | 否 | 二维码文件保存路径,如: '/docuemnt/demo.png' | 程序执行目录 |
小程序上传
示例
alipaydev mini upload -p /Users/workspace/Demos| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -p, --project | 是 | 项目目录 | 无 |
| -i, --app-id | 否 | 小程序appId | 无 |
| -v, --version | 否 | 上传包版本 | 线上包版本自增0.0.1 |
| -c, --client-type | 否 | 上传的终端。 支付宝: alipay; 高德: amap; UC: com.uc.app; 夸克: com.quark.browser; 阿里医院: com.alibaba.health | alipay |
| -e, --experience | 否 | 上传成功后,自动设置为体验版本, 该功能只针对小程序主账号生效 | false |
demo下载
示例
alipaydev mini demo参数
| 参数 | 必填 | 说明 |
|---|---|---|
| -p, --path | 否 | 下载到指定目录 |
云开发相关
查看云服务空间列表
示例
# 查看云服务空间列表,在终端显示云服务空间的名称以及云服务空间的 ID
alipaydev cloud space list -i 2021001107626425查看云函数列表
示例
# 查询服务空间下的云函数列表
alipaydev cloud function list参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -i, --app-id | 否 | 小程序appId | 无 |
| -s, --space-id | 否 | 云服务空间ID | 无 |
启动本地调试服务
alipaydev cloud function dev -p /server/functions --inspect| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -i, --app-id | 否 | 小程序appId | 无 |
| -p, --project | 是 | 云函数根目录 | 无 |
| --port | 否 | 服务启动端口 | 3636 |
| --inspect | 否 | 启动chrome调试器 | false |
上传云函数
示例
# 上传云函数根目录下名为 getSum 的云函数
alipaydev cloud function deploy -n getSum -p /server/functions
# 上传云函数根目录下名为 aaa bbb的云函数
alipaydev cloud function deploy -n aaa bbb -p /server/functions参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -i, --app-id | 否 | 小程序appId | 无 |
| -s, --space-id | 否 | 云服务空间ID | 无 |
| -n, --name | 是 | 云函数名称,多个云函数则以空格分隔 | 无 |
| -p, --project | 是 | 云函数本地文件地址 | 无 |
下载云函数
示例
# 下载云函数 main到 /server/functions目录下面
alipaydev cloud function download -n main --path /server/functions参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -i, --app-id | 否 | 小程序appId | 无 |
| -s, --space-id | 否 | 云服务空间ID | 无 |
| -n, --name | 是 | 云函数名 | 无 |
| -p, --path | 是 | 下载后保存路径 | 无 |
密钥相关
密钥生成
示例
# 在当前目录生成密钥文件,并在终端中打印。密钥类型RSA2,密钥格式PCKS8
alipaydev key create参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| -t, --type | 否 | 密钥类型(rsa2/rsa) | rsa2 |
| -s, --scheme | 否 | 密钥格式(pkcs8/pkcs1) | pkcs8 |
| --pub-path | 否 | 公钥保存地址 | 当前工作目录 |
| --pri-path | 否 | 私钥保存地址 | 当前工作目录 |
工具密钥上传
示例
alipaydev key upload密钥匹配检测
示例
# 校验public.txt 和private.txt 中存放的公私钥是否成对匹配
alipaydev key match --pub-path /Users/keys/public.txt --pri-path /Users/keys/private.txt参数
| 参数 | 必填 | 说明 |
|---|---|---|
| --pub-path | 是 | 公钥地址 |
| --pri-path | 是 | 私钥地址 |
密钥转换
示例
# 将 private.txt中的私钥转换成pcks1格式
alipaydev key convert --pri-path /Users/keys/private.txt -s pkcs1参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| --pri-path | 是 | 私钥地址 | 无 |
| -s, --scheme | 否 | 密钥格式(pkcs8/pkcs1) | pkcs8 |
SDK引入
npm install alipay-dev --saveimport alipaydev from 'alipay-dev'
// 或者
const alipaydev = require('alipay-dev')初始化配置
alipaydev.setConfig({
toolId: '',
privateKey: '',
})小程序预览
demo
const previewResult = await alipaydev.miniPreview({
project: '/code/mini/path',
appId: '2019012963164448',
page: 'page/shop/detail?id=10&from=name'
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| project | 是 | 本地项目地址 | 无 |
| appId | 是 | 小程序appId | 无 |
| page | 否 | 落地页 | 无 |
| launch | 否 | app.js的onLaunch中取得 | 无 |
| qrcodeFormat | 否 | 返回二维码文件的格式。 'terminal', 'base64', 'image' | image |
| qrcodeOutput | 否 | 二维码文件保存路径 | 无 |
返回
| 属性 | 类型 | 说明 |
|---|---|---|
| schema | string | 支付宝schema链接 |
| qrcode | string | schema对应的二维码 |
小程序上传
demo
const uploadResult = await alipaydev.miniUpload({
project: '/code/mini/path',
appId: '2019012963164448',
clientType: 'alipay',
experience: true,
onProgressUpdate (info) {
const { status, data } = info
console.log(status, data)
}
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| project | 是 | 项目目录 | 无 |
| appId | 是 | 小程序appId | 无 |
| packageVersion | 否 | 上传包版本 | 线上包版本自增0.0.1 |
| clientType | 否 | 上传的终端。 支付宝: alipay,高德: amap | alipay |
| experience | 否 | 上传成功后,自动设置为体验版本, 该功能只针对小程序主账号生效 | false |
| onProgressUpdate | 否 | 上传过程中的回调 | 无 |
返回
| 属性 | 类型 | 说明 |
|---|---|---|
| packages | package[] | 编译后的代码包信息 |
| - package.name | string | 上传包名字 |
| - package.type | string | 类型,整包,主包,分包 |
| - package.size | string | 上传包尺寸,单位KB |
| packageVersion | string | 上传包的版本 |
| qrCodeUrl | string | 体验二维码在线地址 |
空间列表
demo
const result = await alipaydev.cloudSpaceList('2021001158675201')入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| appId | 是 | 小程序appId | 无 |
返回
返回一个数组,每一项属性如下
| 属性 | 类型 | 说明 |
|---|---|---|
| appWorkspaceId | string | 空间id |
| name | string | 空间名称 |
| envStatus | string | 空间状态 |
指定空间下的云函数列表
demo
const result = await alipaydev.cloudFunctionList({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807'
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| appId | 是 | 小程序appId | 无 |
| spaceId | 是 | 服务空间ID | 无 |
返回
返回一个数组,每一项属性如下
| 属性 | 类型 | 说明 |
|---|---|---|
| name | string | 云函数名称 |
| desc | string | 云函数描述 |
| createdAt | string | 创建时间 |
| modifiedAt | string | 修改时间 |
| timeout | string | 云函数超时时间 |
运行本地云函数
demo
const result = await alipaydev.invokeLocalFunction({
appId: '20190666750666',
spaceId: '1d98dd70-ceb5-4334-b958-85ff3c7aa8f4',
project: '/server/functions',
name: 'main',
functionArgs: {
x: 1,
y: 1
},
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| appId | 是 | 小程序appId | 无 |
| spaceId | 是 | 服务空间ID | 无 |
| project | 是 | 本地项目地址 | 无 |
| name | 是 | 云函数名 | 无 |
| functionArgs | 否 | 云函数参数 | {} |
返回
本地云函数运行的结果
上传云函数
demo
const result = await alipaydev.deployCloudFunction({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807',
project: '/server/functions/demo'
name: 'demo'
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| appId | 是 | 小程序appId | 无 |
| spaceId | 是 | 服务空间ID | 无 |
| project | 是 | 本地项目地址 | 无 |
| name | 是 | 云函数名 | 无 |
| desc | 否 | 云函数描述 | 无 |
返回
| 属性 | 类型 | 说明 |
|---|---|---|
| name | string | 云函数名称 |
| deploymentId | string | 部署id |
下载云函数
demo
const result = await alipaydev.downloadCloudFunction({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807',
name: 'demo',
path: '/server/functions/',
unzip: true
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| appId | 是 | 小程序appId | 无 |
| spaceId | 是 | 服务空间ID | 无 |
| name | 是 | 云函数名 | 无 |
| path | 是 | 保存路径 | 无 |
| unzip | 否 | 下载后,是否自动解压 | false |
返回
| 属性 | 类型 | 说明 |
|---|---|---|
| stat | string | 下载状态, stat为ok代表成功 |
| code | string | 错误码 |
| message | string | 提示信息 |
密钥生成
demo
const { privatePem, publicPem } = await alipaydev.createKey({
type: 'rsa2',
scheme: 'pkcs8'
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| type | 否 | 密钥类型(rsa2/rsa) | rsa2 |
| scheme | 否 | 密钥格式(pkcs8/pkcs1) | pkcs8 |
| pubPath | 否 | 公钥保存地址 | 无 |
| priPath | 否 | 私钥保存地址 | 无 |
返回
| 属性 | 类型 | 说明 |
|---|---|---|
| privatePem | string | 私钥 |
| publicPem | string | 公钥 |
密钥匹配检测
demo
// true or false
const success = await alipaydev.matchKey({
privatePem: '',
publicPem: ''
})入参
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
| privatePem | 是 | 私钥 | 无 |
| publicPem | 是 | 公钥 | 无 |