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 會一次列出所有錯誤,並只保留下表的欄位。
| 欄位 | 型別 | 必填 | 規則 |
|---|---|---|---|
id | string | ✓ | [a-z0-9_-],1–64 字;發佈後不能改 |
name | string | ✓ | 非空;導覽列預設標題、分享卡片頁首 |
version | string | ✓ | 語意化版本(可帶預發布標記,例如 1.2.0-beta.1) |
permissions | string[] | ✓ | 目前可用:share.toChat;沒有就給 [] |
domains | string[] | ✓ | 見下方;沒有就給 [] |
ageRating | number | ✓ | ≥ 0 的整數;0 為不限年齡 |
minContainer | string | ✓ | 語意化版本;見容器版本 |
pages | string[] | ✓ | 至少一個,每個都以 / 開頭 |
runtime | 'dual' | 省略為單執行緒 | |
logic | string | runtime: 'dual' 時必填 | 專案內的相對路徑,例如 src/logic.ts;不能是絕對路徑或含 .. |
icons | Record<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.0runtime 只能是 'dual' 或省略;單執行緒不能設定 logic。