最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

面試官:說說Webpack和Vite有哪些區(qū)別

 更新時(shí)間:2026年04月03日 09:42:31   作者:404星球的貓  
Vite基于ESM實(shí)現(xiàn)按需編譯,開發(fā)啟動和熱更新速度極快,Webpack采用全量打包,適合復(fù)雜項(xiàng)目但啟動較慢,這篇文章主要介紹了Webpack和Vite有哪些區(qū)別的相關(guān)資料,需要的朋友可以參考下

面試官:說說 Webpack 和 Vite 的區(qū)別

按“真實(shí)項(xiàng)目里踩過的坑”來回答,分 7 個場景

1. 第一次npm run dev

  • Webpack
    公司老項(xiàng)目(約 4 萬行業(yè)務(wù)代碼 + Ant Design Pro):

    > webpack serve
    95% emitting CompressionPlugin

    冷啟動 38 s,M1 芯片 + SSD。
    原因:

    • 要解析 2 300 個模塊的依賴圖;
    • ts-loader、babel-loader、eslint-loader 串行排隊(duì);
    • 每次新增文件,圖重新計(jì)算。
  • Vite
    同一套代碼遷移到 Vite:

    > vite
    ready in 823 ms

    預(yù)構(gòu)建依賴(esbuild 一次性把 lodash-esantd 等打包成 ESM)只要 200 ms,剩下的模塊按瀏覽器請求懶編譯。

2. 熱更新(HMR)

  • Webpack
    修改一個 Button 組件樣式:

    • 觸發(fā) less-loader → css-loader → MiniCssExtractPlugin;
    • 全量 diff 依賴圖,平均 2.8 s 瀏覽器才刷出來。
      如果改的是公共 util,時(shí)間飆到 6 s+。
  • Vite
    只編譯改動的那 1 個 .vue 文件,esbuild 把 <style> 內(nèi)聯(lián)成 ESM,200 ms 內(nèi)瀏覽器收到更新。
    實(shí)測:React 項(xiàng)目 300+ 路由頁,HMR 穩(wěn)定在 300 ms 內(nèi)。

3. 配置地獄

  • Webpack
    為了兼容 IE11,我們寫了 160 行的 webpack.config.js

    module.exports = {
      entry: { main: ['core-js/stable', 'regenerator-runtime/runtime', './src/index.tsx'] },
      output: { publicPath: process.env.ASSET_PATH || '/' },
      module: {
        rules: [
          { test: /\.tsx?$/, use: ['babel-loader', 'eslint-loader'] },
          { test: /\.less$/, use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'less-loader'] },
          { test: /\.(png|jpg|jpeg|gif|svg)$/, type: 'asset', parser: { dataUrlCondition: { maxSize: 8192 } } }
        ]
      },
      plugins: [
        new HtmlWebpackPlugin({ template: './public/index.html' }),
        new CompressionPlugin({ algorithm: 'gzip' })
      ],
      optimization: {
        splitChunks: {
          chunks: 'all',
          cacheGroups: {
            vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendors', priority: 10 }
          }
        }
      }
    };

    新人 2 天才能跑起來。

  • Vite

    export default defineConfig({
      plugins: [react()],
      server: { port: 3000 },
      build: { outDir: 'dist' }
    });

    30 秒上手,剩下交給官方插件。

4. 生產(chǎn)構(gòu)建

  • Webpack
    npm run build 跑 3 min 10 s,產(chǎn)物 4.2 MB(gzip 后 1.1 MB)。

    • 需要手動配 SplitChunksPlugin、BundleAnalyzerPlugin 做體積優(yōu)化;
    • 多入口時(shí)要做 runtimeChunk: 'single',否則重復(fù) polyfill 爆炸。
  • Vite
    同一套代碼,Rollup 構(gòu)建 38 s,產(chǎn)物 3.8 MB(gzip 后 0.9 MB)。

    • 默認(rèn) tree-shaking 更激進(jìn),Ant Design 的未使用組件直接消失;
    • 動態(tài) import 自動拆包,無需手寫魔法注釋。

5. 兼容性

  • Webpack
    能無痛打到 ES5,IE11 白屏率 < 1%。
    代價(jià):polyfill + 降級語法,打包體積 +25%。

  • Vite
    開發(fā)階段默認(rèn)只支持現(xiàn)代瀏覽器(ES2020+)。
    需要 IE11 時(shí):

    • @vitejs/plugin-legacy;
    • 會自動生成 legacy bundle + polyfill,構(gòu)建時(shí)間 + 40%,但 DX 仍比 Webpack 快。

6. 微前端/Module Federation

  • Webpack 5
    我們主應(yīng)用用 ModuleFederationPlugin 動態(tài)加載子應(yīng)用:
    new ModuleFederationPlugin({
      name: 'host',
      remotes: {
        marketing: 'marketing@http://localhost:3001/remoteEntry.js'
      }
    })
    子應(yīng)用獨(dú)立部署,共享 React、antd,節(jié)省 300 KB 流量。
    Vite 目前社區(qū)有 vite-plugin-federation,但功能、穩(wěn)定性還沒對齊 Webpack,復(fù)雜場景慎入。

7. 遷移成本

  • Webpack → Vite
    我們 3 人 2 周把 70% 的子項(xiàng)目遷完:
    • webpack-dev-server 代理配置抄到 vite.config.ts
    • file-loader/url-loader 換成 import.meta.glob;
    • 遇到 CommonJS 老庫(如 moment)加 optimizeDeps.include 強(qiáng)制預(yù)構(gòu)建。
      遺留的 30%(Module Federation 子應(yīng)用、低版本瀏覽器)繼續(xù)留在 Webpack。

一句話總結(jié)

  • 新項(xiàng)目、小團(tuán)隊(duì)、追求開發(fā)效率 → 直接上 Vite。
  • 要 IE11、Module Federation、超大型 monorepo → 繼續(xù) Webpack,或兩者并存:主應(yīng)用 Webpack,子應(yīng)用 Vite。

到此這篇關(guān)于Webpack和Vite有哪些區(qū)別的文章就介紹到這了,更多相關(guān)Webpack和Vite區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于JavaScript實(shí)現(xiàn)HTML到PDF的轉(zhuǎn)換指南

    基于JavaScript實(shí)現(xiàn)HTML到PDF的轉(zhuǎn)換指南

    HTML到PDF的轉(zhuǎn)換是一個實(shí)用的功能,特別是在需要網(wǎng)頁打印或文檔共享時(shí),本文將深入探討如何在JavaScript環(huán)境中使用 jspdf 庫來實(shí)現(xiàn)這一轉(zhuǎn)換,感興趣的小伙伴跟著小編一起來看看吧
    2025-07-07
  • javascript dom操作之cloneNode文本節(jié)點(diǎn)克隆使用技巧

    javascript dom操作之cloneNode文本節(jié)點(diǎn)克隆使用技巧

    文本克隆函數(shù)cloneNode他有兩個參數(shù)——true or false
    2009-12-12
  • 淺談es6中的元編程

    淺談es6中的元編程

    這篇文章主要介紹了淺談es6中的元編程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • js前端技巧之圖片格式轉(zhuǎn)換(File、Blob、base64)

    js前端技巧之圖片格式轉(zhuǎn)換(File、Blob、base64)

    這篇文章主要給大家介紹了關(guān)于js前端技巧之圖片格式轉(zhuǎn)換(File、Blob、base64)的相關(guān)資料,主要記錄一下比較常見的圖片格式(File、Blob、base64)在不同的場景他們之間的相互轉(zhuǎn)換的方法,需要的朋友可以參考下
    2023-04-04
  • JS實(shí)現(xiàn)可縮放、拖動、關(guān)閉和最小化的浮動窗口完整實(shí)例

    JS實(shí)現(xiàn)可縮放、拖動、關(guān)閉和最小化的浮動窗口完整實(shí)例

    這篇文章主要介紹了JS實(shí)現(xiàn)可縮放、拖動、關(guān)閉和最小化的浮動窗口的方法,實(shí)例分析了javascript操作窗口層的技巧,需要的朋友可以參考下
    2015-03-03
  • 自定義排序算法在JavaScript中的應(yīng)用

    自定義排序算法在JavaScript中的應(yīng)用

    這篇文章主要介紹了自定義排序算法在JavaScript中的應(yīng)用,通過自定義排序函數(shù),我們能夠精確控制數(shù)組元素的排序邏輯,從而滿足各種復(fù)雜的應(yīng)用場景,需要的朋友可以參考下
    2024-12-12
  • uni-app的iPhonex底部安全區(qū)域解決方案

    uni-app的iPhonex底部安全區(qū)域解決方案

    這篇文章主要為大家介紹了uni-app的iPhonex底部安全區(qū)域解決方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • JS算法題之查找數(shù)字在數(shù)組中的索引位置

    JS算法題之查找數(shù)字在數(shù)組中的索引位置

    這篇文章主要給大家介紹了關(guān)于JS算法題之查找數(shù)字在數(shù)組中的索引位置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • JavaScript空值合并運(yùn)算符??使用場景

    JavaScript空值合并運(yùn)算符??使用場景

    這篇文章主要介紹了JavaScript空值合并運(yùn)算符??的相關(guān)資料,??是一個js邏輯操作符,當(dāng)左側(cè)的操作數(shù)為null或者undefined時(shí),返回其右側(cè)數(shù),否則返回左側(cè)數(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • 一個不錯的js html頁面倒計(jì)時(shí)可精確到秒

    一個不錯的js html頁面倒計(jì)時(shí)可精確到秒

    這篇文章主要介紹了一個不錯的js html頁面倒計(jì)時(shí)可精確到秒,很簡單,但和實(shí)用,需要的朋友可以參考下
    2014-10-10

最新評論

罗源县| 监利县| 张家界市| 乌什县| 永新县| 靖边县| 上饶市| 舟曲县| 信宜市| 普陀区| 云南省| 加查县| 社会| 马公市| 乌兰察布市| 台湾省| 兰西县| 汾西县| 澄城县| 阿拉尔市| 正蓝旗| 渭源县| 汾阳市| 水富县| 孟州市| 福清市| 大宁县| 从化市| 龙井市| 健康| 项城市| 安庆市| 深州市| 宜州市| 巨野县| 漯河市| 白朗县| 游戏| 珠海市| 富源县| 昌江|