Skip to content

miniapp.config.ts ​

放在專案根目錄(也可以是 miniapp.config.mts、.js、.mjs),default export 用 defineConfig 包起來以取得型別提示。

ts
import { defineConfig } from 'im-miniapp';

export default defineConfig({
  id: 'shop',
  name: '商城',
  version: '1.4.2',
  permissions: ['share.toChat'],
  domains: ['https://api.example.com'],
  ageRating: 0,
  minContainer: '1.2.0',
  pages: ['/', '/orders'],
  icons: { '2x': 'icon@2x.png', '3x': 'icon@3x.png' },
});

CLI 會一次列出所有錯誤,並只保留下表的欄位。

欄位型別必填規則
idstring✓[a-z0-9_-],1–64 字;發佈後不能改
namestring✓非空;導覽列預設標題、分享卡片頁首
versionstring✓語意化版本(可帶預發布標記,例如 1.2.0-beta.1)
permissionsstring[]✓目前可用:share.toChat;沒有就給 []
domainsstring[]✓見下方;沒有就給 []
ageRatingnumber✓≥ 0 的整數;0 為不限年齡
minContainerstring✓語意化版本;見容器版本
pagesstring[]✓至少一個,每個都以 / 開頭
runtime'dual'省略為單執行緒
logicstringruntime: 'dual' 時必填專案內的相對路徑,例如 src/logic.ts;不能是絕對路徑或含 ..
iconsRecord<string, string>名稱 → 包內路徑,檔案必須存在

domains ​

每一項必須同時符合:

  • https:// 開頭。
  • 只到 origin:不能有路徑、查詢、#,也不能有結尾的 /;預設埠(:443)不要寫。
  • 主機名稱為小寫英數與連字號組成的標籤、至少兩段,最後一段不能是純數字。
寫法結果
https://api.example.com✓
https://api.example.com:8443✓
http://api.example.com✗ 必須是 https
https://api.example.com/v1✗ 只能到 origin
https://api.example.com:443✗ 預設埠不要寫
https://localhost✗ 至少兩段
https://my_api.example.com✗ 不能有底線
https://10.0.0.1✗ 不接受 IP

雙執行緒 ​

ts
runtime: 'dual',
logic: 'src/logic.ts',
minContainer: '1.2.0', // 至少 1.1.0

runtime 只能是 'dual' 或省略;單執行緒不能設定 logic。