<p id="5p7tj"><address id="5p7tj"></address></p>

<dfn id="5p7tj"></dfn>
    <p id="5p7tj"><output id="5p7tj"><noframes id="5p7tj">

    <menuitem id="5p7tj"></menuitem>

      <listing id="5p7tj"><sub id="5p7tj"></sub></listing>

          <font id="5p7tj"><address id="5p7tj"><delect id="5p7tj"></delect></address></font>

            <big id="5p7tj"><address id="5p7tj"></address></big>
          前端工程化
          日期:2023年10月12日     新聞分類(lèi): 技術(shù)中心      瀏覽:1873次
          內容導讀:前端工程化

          隨著(zhù)前端技術(shù)的不斷發(fā)展和變革,業(yè)務(wù)邏輯也變得越來(lái)越復雜多樣,企業(yè)對前端的應用功能要求也不斷提高,例如優(yōu)化開(kāi)發(fā)流程,提高編碼效率和質(zhì)量,提高項目的可維護性...從一個(gè)項目搭建再到部署上線(xiàn),這里面的每一個(gè)過(guò)程我們都可以通過(guò)前端工程化,提高工作效率。


          簡(jiǎn)單來(lái)說(shuō),前端工程化可以提升開(kāi)發(fā)體驗、提高開(kāi)發(fā)效率和質(zhì)量、提升應用的訪(fǎng)問(wèn)性能,一切以提高效率、降低成本、質(zhì)量保證為目的的手段都屬于工程化。前端工程化它主要包含從編碼、發(fā)布到運維的整個(gè)前端研發(fā)生命周期,把軟件工程相關(guān)的方法和思想應用到前端開(kāi)發(fā)。


          但當提到工程化工具,作為經(jīng)驗豐富的前端開(kāi)發(fā)者,可以列舉出很多代表。首先是Grunt&Gulp,這兩款工具都是基于任務(wù)類(lèi)型,所以它們的工作流是一致的:可以看到它們打包的策略通常是Allinone,后頁(yè)面還是引用css、img、js,開(kāi)發(fā)流程與徒手開(kāi)發(fā)相比并無(wú)差異。Grunt是老牌的構建工具,特點(diǎn)是配置驅動(dòng),你需要做的就是了解各種插件的功能,然后把配置整合到Gruntfile.js中。Grunt缺點(diǎn)也是配置驅動(dòng),當任務(wù)非常多的情況下,試圖用配置完成所有事簡(jiǎn)直就是個(gè)災難;再就是它的I/O操作也是個(gè)弊病,它的每一次任務(wù)都需要從磁盤(pán)中讀取文件,處理完后再寫(xiě)入到磁盤(pán)。例如:我想對多個(gè)less進(jìn)行預編譯、壓縮操作,那么Grunt的操作就是:讀取less文件->編譯成css->存儲到磁盤(pán)->讀取css->壓縮處理->存儲到磁盤(pán)這樣一來(lái)當資源文件較多,任務(wù)較復雜的時(shí)候性能就是個(gè)問(wèn)題了。


          Gulp特點(diǎn)是代碼驅動(dòng),寫(xiě)任務(wù)就和寫(xiě)普通的Node.js代碼一樣,在一個(gè)對文件讀取是流式操作(Stream),也就是說(shuō)一次I/O可以處理多個(gè)任務(wù),還是less的例子。Gulp的流程就是:讀取less文件->編譯成css->壓縮處理->存儲到磁盤(pán)。Gulp作為任務(wù)類(lèi)型的工具沒(méi)有明顯的缺點(diǎn)的問(wèn)題,可能就是完成相同的任務(wù)它需要寫(xiě)的代碼更多一些,所以除非是項目有歷史包袱,在Grunt與Gulp對比看來(lái)還是比較推薦Gulp!

          Webpack是目前熱門(mén)的前端資源模塊化管理和打包工具。Webpack的特點(diǎn):1.把一切都視為模塊:不管是CSS、JS、Image還是HTML都可以互相引用,通過(guò)定義entry.js,對所有依賴(lài)的文件進(jìn)行跟蹤,將各個(gè)模塊通過(guò)loader和plugins處理,然后打包在一起。2.按需加載:打包過(guò)程中Webpack通過(guò)CodeSplitting功能將文件分為多個(gè)chunks,還可以將重復的部分單獨提取出來(lái)作為commonChunk,從而實(shí)現按需加載。Webpack也是通過(guò)配置來(lái)實(shí)現管理,與Grunt不同的時(shí),它包含的許多自動(dòng)化的黑盒操作所以配置起來(lái)會(huì )簡(jiǎn)單很多。那Webpack的不足之處就在于:1.上手比較難:官方文檔混亂、配置復雜、難以調試(Webpack2已經(jīng)好了很多)對于新手而言需要經(jīng)歷踩坑的過(guò)程;2.對于Server端渲染的多頁(yè)應用有點(diǎn)力不從心:Webpack的初設計就是針對SPA,所以在處理Server端渲染的多頁(yè)應用時(shí),不管你如何chunk,總不能真正達到按需加載的地步,往往要去考慮如何提取公共文件才能達到優(yōu)狀態(tài)。


          比如,你的工程模塊依賴(lài)很簡(jiǎn)單,不需要把js或各種資源打包,只需要簡(jiǎn)單的合并、壓縮,在頁(yè)面中引用就好了。那就不需要Browserify、Webpack。Gulp就夠用了。


          反過(guò)來(lái),如果你的工程龐大,頁(yè)面中使用了很多庫(SPA很容易出現這種情況),那就可以選擇某種模塊化方案。至于是用Browserify還是Webpack就需要根據其他因素來(lái)判斷了。



          摘自:達內教育公眾號

          版權所有: 山西科達自控股份有限公司 備案號:晉ICP備09004627號-2   

          郵箱

          keda@sxkeda.com

          電話(huà)

          400-0351-150

          微信

          專(zhuān)屬
          客服

          留言

          右側導航

          久久中文字幕网,狠狠色伊人久久精品综合网,大伊香蕉精品二区视频在线,久久综合中文字幕一区二区
          <p id="5p7tj"><address id="5p7tj"></address></p>

          <dfn id="5p7tj"></dfn>
            <p id="5p7tj"><output id="5p7tj"><noframes id="5p7tj">

            <menuitem id="5p7tj"></menuitem>

              <listing id="5p7tj"><sub id="5p7tj"></sub></listing>

                  <font id="5p7tj"><address id="5p7tj"><delect id="5p7tj"></delect></address></font>

                    <big id="5p7tj"><address id="5p7tj"></address></big>