使用Fundebug API 批量上傳Source Map

摘要: 通過程式碼批量上傳 Source Map,實現流程自動化!

Fundebug 支援使用 Source Map 還原真正的錯誤位置。這樣的話,開發者能夠迅速定位出錯的源程式碼。另外,Fundebug 還能夠展示出錯的程式碼塊,幫助開發者更快地解決問題。

Fundebug 支援哪些 Source Map 上傳方式?

如果希望使用 Source Map 功能的話,我們必須拿到 Source Map 文件。用戶可以將 Source Map 文件掛載到自己的伺服器,我們會自動下載;或者,用戶也可以主動上傳 Source Map。我們一共提供了 3 種不同的上傳方式:

  • 前端 UI 上傳
  • fundebug-cli 批量上傳
  • API 上傳

前面兩種方式都比較直觀,文檔中有詳細的說明。接下里介紹如何通過程式碼調用 API 實現 Source Map 批量上傳。

如何批量上傳 Source Map?

Fundebug 支援通過POST請求上傳 Source Map,介面為/javascript/sourcemap/upload, 參數包括

  • apikey: 獲取 apikey 需要免費註冊帳號並且創建項目。
  • appversion: 可選參數,用於配置應用版本。若希望區分不同版本的 Source Map,則在接入 Fundebug 時,必須配置對應的 appversion 屬性,並在程式碼更新時及時更新。
  • sourceMap:Source Map 文件資訊,具體內容請參考下方示例程式碼。

下面給出 Node.js 版本的程式碼供參考,

const request = require("request-promise");  const fs = require("fs");    const options = {      method: "POST",      uri: "https://fundebug.com/javascript/sourcemap/upload",      formData: {          apikey: "YOUR-API-KEY",          appversion: "1.0.0",          sourceMap: {              value: fs.createReadStream("./data/app.6c20067a.js.map"),              options: {                  filename: "app.6c20067a.js.map",                  contentType: "text"              }          }      }  };    request(options)      .then(function(success) {          console.log("success:", success);      })      .catch(function(err) {          console.log("fail:", err);      });

如何清除已上傳 Source Map?

如果上傳的 Source Map 太多,希望將舊的 Source Map 文件刪掉,我們也提供了相應的介面: /javascript/sourcemap/clear。示例程式碼如下:

const request = require("request-promise");  const fs = require("fs");    const options = {      method: "POST",      uri: "https://fundebug.com/javascript/sourcemap/clear",      body: {          apikey: "YOUR-API-KEY"      },      json: true  };    request(options)      .then(function(success) {          console.log("success:", success);      })      .catch(function(err) {          console.log("fail:", err);      });

感謝客戶大大風變科技的回饋!