<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          前端打包工具大亂斗

          共 1435字,需瀏覽 3分鐘

           ·

          2021-03-17 03:05

          背景和痛點

          過去很長一段時間,人們使用 webpack,或基于 webpack(taro)的插件系統,構建復雜應用

          隨著項目復雜度的升高,一層層 loader 和 plugin,將開發(fā)鏈路大大延長

          過長的開發(fā)鏈路,除了打包時間變慢,更重要的是嚴重影響力調試,測試,維護

          除此之外,case by case 的 AST 轉譯方式,擅自扭曲語法語義,也是很不地道的行為

          從去年開始大家開始意識到這個問題,開始制造鏈路更短,開發(fā)體驗更好的打包工具,前端進入打包工具大亂斗的 2021 年

          第一類:vite/snowpack/wmr

          其中一類是基于 native module 機制開發(fā) bundless 工具,比如 vite,snowpack,wmr

          其中 vite 的作者是知名前端框架 vue 的作者,wmr 的作者則是 preact 團隊

          https://github.com/vitejs/vite

          https://github.com/snowpackjs/snowpack

          https://github.com/preactjs/wmr

          這類工具的機制是一模一樣的,本質上是一個 dev server,面向的目標群體是現代 web 應用,比較重要的是對 ssr 的實現

          svelte/roolup 作者開源一種 native module 跑到 node 的思路,被 vite,snowpack 所使用

          https://github.com/sveltejs/kit

          因為 ssr 同構是必須將 native module 跑到 node 端的

          與此同時,這類框架還需要借助 rollup 或 esbuild 進行打包和預處理

          所以與其說他們是打包工具,不如說他們是不依賴 webpack 的構建工具

          第二類:wepack/metro

          前面的第一類工具主要是針對現代瀏覽器,而非 web 平臺,也有對應的替代方案

          比如 metro 是專門用來打包 RN 的,它的作者是 facebook 官方,未來會成為 RN 的標配

          https://github.com/facebook/metro

          wepack 是專門用來打包微信小程序的,它的作者是 fre 作者 132

          https://github.com/ctripcorp/wepack

          這一類工具的共同特點是,他們都是因為非 web 平臺產生,并服務于這特定場景

          因為 js 不再是一等公民,通常這類工具無法使用 rollup,esbuild 等工具

          但無論如何目的都是一樣的——拋棄 webpack

          第三類:esbuild/swr

          第三類工具則以 esbuild 為代表,它的作者是大名鼎鼎的 figma CTO

          https://github.com/evanw/esbuild

          這類工具通常使用非 js 語言,利用其他語言的天賦來提升編譯速度

          比如前面提到的 vite 就使用 esbuild 進行預編譯

          總結

          工具眾多,大家除了根據自己的業(yè)務嘗試新型框架,更重要的是理解這些框架的內在

          另外,對于公司而言,歷史包袱先于新業(yè)務,鏟平一座 shi 山的意義遠大于開始一個新項目

          所以這些工具其實都不是對標歷史債務的

          該自己扛的,還得自己扛


          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久青草视频 | 国产精品福利视频在线观看 | 簧片网站在线观看 | 亚洲九九九九 | 北条麻妃网址大全 |