前端自動化部署

在常規(guī)的前端項目中,部署項目需要經(jīng)過本地build择镇,壓縮文件挡逼,將壓縮包上傳至服務(wù)器并解壓文件等步驟,過程較為繁瑣腻豌。所以本人編寫了一個nodejs腳本家坎,用來告別手動上傳的過程,配置使用簡單吝梅,實現(xiàn)前端一鍵自動化部署虱疏。

前端自動化編譯與部署腳本
當前支持window上傳至linux服務(wù)器以及l(fā)inux上傳至linux服務(wù)器
如果您覺得對您有幫助 點個贊或者去GitHub點個star ,非常感謝
項目git地址

使用步驟

1.下載項目憔涉,git clone https://github.com/HEJIN2016/auto-deploy.git
將項目中autoDeploy.js文件拷貝至前端項目根目錄下(與前端打包完之后的dist目錄同級)

2.安裝依賴:

 npm install archiver ssh2 -D

3.配置前端工程部署服務(wù)器用戶密碼等
在autoDeploy.js中订框,找到首行的對象Config,配置相關(guān)參數(shù)兜叨,配置如下

const Config = {
  host: 'test.com', // 服務(wù)器ip地址或域名
  port: 22, // 服務(wù)器ssh連接端口號
  username: 'root', // ssh登錄用戶
  password: '', // 密碼
  // privateKey: fs.readFileSync('myKey.key'), // 私鑰穿扳,私鑰與密碼二選一

  catalog: '/var/www/test', // 前端文件壓縮目錄,請勿以/符號結(jié)尾
  buildDist: 'dist', // 前端文件打包之后的目錄国旷,默認dist
  buildCommand: 'npm run build', // 打包前端文件的命令矛物,默認為npm run build
  readyTimeout: 20000 // ssh連接超時時間
};

4.執(zhí)行上傳命令
node autoDeploy.js,耐心等待部署完畢跪但,建議將node autoDeploy.js命令添加進入package.json中

部署基本流程介紹

1.執(zhí)行build命令
2.壓縮打包之后的文件

// 創(chuàng)建文件輸出流
      let output = fs.createWriteStream(__dirname + '/' + fileName);
      let archive = archiver('zip', {
        zlib: { level: 9 } // 設(shè)置壓縮級別
      });
      // 文件輸出流結(jié)束
      output.on('close', function() {
        console.log(`----壓縮文件總共 ${archive.pointer()} 字節(jié)----`);
        console.log('----壓縮文件夾完畢----');
        resolve({
          success: true
        })
      });
      // 數(shù)據(jù)源是否耗盡
      output.on('end', function() {
        console.error('----壓縮失敗履羞,數(shù)據(jù)源已耗盡----');
        reject();
      });
      // 存檔警告
      archive.on('warning', function(err) {
        if (err.code === 'ENOENT') {
          console.error('----stat故障和其他非阻塞錯誤----')
        } else {
          console.error('----壓縮失敗----');
        }
        reject(err);
      });
      // 存檔出錯
      archive.on('error', function(err) {
        console.error('----存檔錯誤,壓縮失敗----');
        console.error(err);
        reject(err);
      });
      // 通過管道方法將輸出流存檔到文件
      archive.pipe(output);

      // 打包dist里面的所有文件和目錄
      archive.directory(filePath, false);
      // archive.directory(`../${Config.buildDist}/`, false);

      // 完成歸檔
      archive.finalize();

3.ssh連接服務(wù)器并上傳文件
4.解壓上傳的文件
5.刪除本地的壓縮包文件屡久,部署完畢

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忆首,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子被环,更是在濱河造成了極大的恐慌糙及,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筛欢,死亡現(xiàn)場離奇詭異浸锨,居然都是意外死亡,警方通過查閱死者的電腦和手機版姑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門柱搜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人剥险,你說我怎么就攤上這事聪蘸。” “怎么了表制?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵宇姚,是天一觀的道長。 經(jīng)常有香客問我夫凸,道長浑劳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任夭拌,我火速辦了婚禮魔熏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸽扁。我一直安慰自己蒜绽,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布桶现。 她就那樣靜靜地躺著躲雅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骡和。 梳的紋絲不亂的頭發(fā)上相赁,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天相寇,我揣著相機與錄音,去河邊找鬼钮科。 笑死唤衫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的绵脯。 我是一名探鬼主播佳励,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蛆挫!你這毒婦竟也來了赃承?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤悴侵,失蹤者是張志新(化名)和其女友劉穎瞧剖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畜挨,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡筒繁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了巴元。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毡咏。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逮刨,靈堂內(nèi)的尸體忽然破棺而出呕缭,到底是詐尸還是另有隱情,我是刑警寧澤修己,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布恢总,位于F島的核電站,受9級特大地震影響睬愤,放射性物質(zhì)發(fā)生泄漏片仿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一尤辱、第九天 我趴在偏房一處隱蔽的房頂上張望砂豌。 院中可真熱鬧,春花似錦光督、人聲如沸阳距。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筐摘。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咖熟,已是汗流浹背圃酵。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留球恤,地道東北人辜昵。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓荸镊,卻偏偏與公主長得像咽斧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子躬存,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345