亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何自己實現一個前端資源的自動化更新工具呢?

如何自己實現一個前端資源的自動化更新工具呢?

慕碼人8056858 2018-10-15 20:42:57
想要自己實現一個靜態資源更新后,自動計算md5值重命名,發布到靜態資源服務器,并且改寫html中的相關標簽的腳本。自己大概設想了一下,現在有這么幾個問題。靜態文件服務器和動態的服務器可能有很多臺,而且不在一個機房,那么這個工具,肯定要做一個通知系統,把更改過的jscss啊發布到靜態服務器,把改寫過標簽的html文件發布到動態服務器里,這一步是要基于網絡協議了,讓靜態服務器監聽一個端口等待通知的到來和文件的傳輸,可靠嗎?這個腳本改寫html中資源加載的標簽時,可能會出現這種情況,html中加載了1.css,1.css又加載了一個jpg。這個時候jpg變動的話,會引起所有1.css和html都變動。所以肯定要從最底層開始計算md5并替換標簽。這個層級關系的處理上有什么好的方法嗎?這個問題不是關于這個腳本的。。只是想問一下像browserSync這樣的工具,可以實現資源ctrls保存后自動刷新頁面,這個對資源的監控(gulp里面是watchingfile吧)是怎么做到的?就是寫一個timer無限循環計算文件的md5嗎?希望有做過的前輩來解答下~感激不盡~
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

不知道你們的運維和測試同意不同意,也不知道你們的代碼的版本管理工具是啥。

以前公司比較小,我以git為基礎寫了個這萬一,提交代碼自動,自動服務端打包更新的。

以git為例,git有個webhook,你可以設置它在每次代碼提交后給指定一個或多個地址發送一個http請求,一般是post。

然后在服務端,起一個服務,來接收這個請求,然后拉取倉庫代碼,然后從提交代碼的commits信息里匹配相關指令(因為不是每次提交都需要打包,所以我還指定了打包的指令),匹配到了后,就開始檢查package是否變動了,便動了就先裝包依賴。然后就執行打包命令。

這就是基本思路。

然后就是你說的版本號這些,我用的webpack來打包的,配置一下插件就好了,不需要自己寫,我用的是HtmlWebpackPlugin。

然后webpack是用來打包和調試的,不是用來部署的!建議換更轉移的服務器程序,比如nginx,或者專門用node起一個靜態服務器等,或者直接用cdn。

那是給以前公司寫的,提供個思路,就不上代碼了。


查看完整回答
反對 回復 2018-11-03
  • 1 回答
  • 0 關注
  • 502 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號