Skip to content

設定

將選項傳給 PageFlow 配接器:

ts
PageFlow.vite({
  enabled: true,
  previewPath: '/__unplugin-pageflow/',
  appUrl: '/',
  dynamicParams: {
    '/products/:id': { id: 'demo-product' },
  },
})

選項

選項預設值說明
enabledtrue在開發伺服器啟用 PageFlow。
previewPath/__unplugin-pageflow/視覺地圖使用的 URL。
appUrl/用來探索應用路由器的路由。
dynamicParams{}為動態路由參數提供範例值。
pageTests{}明確把路由 glob 與測試檔案 glob 關聯。
testCommands{}使用明確且不經 shell 的指令,啟用每種測試類型。

頁面測試

PageFlow 會自動關聯匯入頁面元件、使用同名測試檔案,或在測試案例中導航到完整路由的測試。不明確的測試可以手動映射:

ts
PageFlow.vite({
  pageTests: {
    '/orders/**': ['tests/orders-*.spec.ts'],
  },
  testCommands: {
    unit: { command: 'pnpm', args: ['vitest', 'run', '{file}', '-t', '{name}'] },
    component: { command: 'pnpm', args: ['vitest', 'run', '{file}', '-t', '{name}'] },
    e2e: { command: 'pnpm', args: ['playwright', 'test', '{file}', '-g', '{name}'], timeoutMs: 180_000 },
  },
})

{file}{name} 會替換成已索引的測試檔案和案例名稱。指令從專案根目錄以 shell: false 執行;預設不會猜測或啟用任何測試指令。單個測試預設可以執行 120 秒,timeoutMs 可設定 1 秒到 30 分鐘。

PageFlow 將最新 500 筆測試結果儲存在 .unplugin-pageflow/cache/test-results.json。測試檔案內容變更會自動令先前結果失效。持久輸出限制為每個測試最後 20 KB;快取目錄應繼續由 Git 忽略。

動態路由參數

PageFlow 需要具體值,才能渲染 /products/:id 這類路由:

ts
PageFlow.vite({
  dynamicParams: {
    '/products/:id': {
      id: 'demo-product',
    },
    '/users/:userId/orders/:orderId': {
      userId: 'alice',
      orderId: 'order-100',
    },
  },
})

請使用安全的本機或測試識別碼。動態參數不會繞過應用驗證。

預覽就緒

PageFlow 會在擷取頁面前等待字型、圖片和穩定的 DOM。包含長時間非同步工作的頁面可以明確發出就緒訊號:

ts
window.__UNPLUGIN_PAGEFLOW_READY__?.()

基於 MIT 授權條款發佈。