從0到1開發(fā)前端項目一鍵發(fā)布chrome插件

背景

公司的前端可視化發(fā)布系統(tǒng)watt,測試環(huán)境打包操作步驟比較多,于是便萌發(fā)了寫一個一鍵發(fā)布項目的chrome插件的想法。

watt測試環(huán)境正常發(fā)布流程:

  1. 進入watt
  2. 從項目列表中找到需要發(fā)布的項目
  3. 若是項目比較多,需要模糊查找
  4. 點擊發(fā)布,彈出二次確認按鈕
  5. 再次點擊確認才能成功發(fā)布

使用插件后的發(fā)布流程:


image.png

點擊跳轉(zhuǎn)watt并發(fā)布測試即可發(fā)布。

項目思路

該項目主要是為了在項目開發(fā)時,可以快速發(fā)布測試環(huán)境。同時為了避免誤操作,只有判定當前為開發(fā)環(huán)境時,跳轉(zhuǎn)watt并發(fā)布測試的功能才會開啟,而且只會發(fā)布測試環(huán)境。其他環(huán)境只會顯示
image.png

只做頁面跳轉(zhuǎn)。

項目實現(xiàn)原理

一 使用正則解析當前頁面url

const LOCAL_URL_REGX = /^(https|http)?:\/\/[0-9.]+:[0-9]+\/bixin\/([\w-_]+)\/index.*/
const DOMAIN_URL_REGX = // 出于安全考慮此正則就不展示出來了
    async getApplicationName () {
      const url = this.currentUrl
      let applicationName = ''
      if (url.match(LOCAL_URL_REGX)) {
        // 針對開發(fā)環(huán)境,域名是純IP地址的問題
        applicationName = url.replace(LOCAL_URL_REGX, '$2')
        this.currentEnv = 'dev'
      } else if (url.match(DOMAIN_URL_REGX)) {
        applicationName = url.replace(DOMAIN_URL_REGX, '$2')
        this.currentEnv = 'online'
      }
      return applicationName
    },

項目名稱也會出現(xiàn)在url路徑中,項目名稱也是watt中的應(yīng)用名稱,這是能夠應(yīng)用正則解析出應(yīng)用名稱的基礎(chǔ)。 上面兩個正則分別處理開發(fā)環(huán)境和其他場景。

二 獲取cookie

    async fetchCookie (name, url) {
      return new Promise(resolve => {
        chrome.cookies.get({ name, url }, (info) => {
          resolve(info)
        })
      }

使用上述chrome api獲取watt域名使用的cookie

三 根據(jù)應(yīng)用名獲取watt項目詳情

調(diào)用watt對應(yīng)的api接口,獲取應(yīng)用名對應(yīng)的應(yīng)用詳情,watt應(yīng)用名在不同的bu下是不保證唯一的,此插件目前并未處理應(yīng)用名重復(fù)的問題,若有多個,只會使用第一個。(將來會處理這種情況)
若是獲取到應(yīng)用信息,則會拼接watt部署頁面鏈接,可以直接跳轉(zhuǎn)到該應(yīng)用的發(fā)布頁;
若是未獲取到應(yīng)用信息,則會跳轉(zhuǎn)到watt個人應(yīng)用頁面;

四 根據(jù)應(yīng)用信息,調(diào)用測試環(huán)境發(fā)布接口

若是開發(fā)環(huán)境,并且獲取到應(yīng)用項目詳情,則會顯示
image.png

此按鈕,點擊就會觸發(fā)測試環(huán)境發(fā)布接口,同時會跳轉(zhuǎn)到發(fā)布頁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容