四個最強 JS 工具庫!強勢兼容 Vue、React!
曾經的 lodash 是前端工具庫里的王者——在 ES5 時代,它用 300+ 個貼心的小函數把“寫 JavaScript”這件難事變成了樂高拼插:深拷貝、去重、防抖、節流……只要記住一個下劃線,就能少寫 100 行兼容代碼。
但技術一直在往前滾,如今 ES6+ 原生能力越來越全,它也該歇歇了。

如果你的項目還在 npm i lodash,不妨花 5 分鐘認識下面 4 個“最強替代品”——它們不是來“黑”老大哥,而是站在新基礎設施上,把同樣的事做得更輕、更快、更友好。
lodash-es - 零改動瘦身版

定位:官方 ESM 分支,API 與 lodash 完全一致,僅把代碼切成 ES Module。
優勢:
- 體積直接腰斬:全量 24 kB → 12 kB(Tree-Shaking 后還能再掉 30%)。
- 遷移成本=0,全局替換字符串即可,老單測一行不改。
- 瀏覽器下限依舊 IE11,老項目放心吃。
怎么用:
npm uninstall lodash @types/lodash
npm i lodash-es
# 原代碼
import { debounce } from 'lodash'
# 全局替換后
import { debounce } from 'lodash-es'打包工具會自動搖掉沒用到的函數,“下樓梯式”瘦身,風險極低。
es-toolkit - 無痛超速版

定位:重新實現 + 100% 兼容層,讓你“今天卸載 lodash,明天上線新需求”。
優勢:
- 提供 es-toolkit/compat 子包,函數簽名與 lodash 鏡像級一致;官方 codemod 腳本 90% 自動替換。
- 性能 ×2-3,體積 ?70%;單測通過率 100%,Twitter 上已有團隊 24h 內全量遷移。
- 原生 TypeScript,零 any,路徑推斷可到第四層:get(obj, 'a.b.c.d') 返回類型就是 string | undefined。
怎么用:
npm i es-toolkit
# 一鍵遷移
npx @es-toolkit/codemod src/想漸進升級?先上 compat,再把冷門函數逐步換成“原生版”即可。
Radashi - 極致性能版(社區續命版 Radash)

定位:零依賴 + ES2020 全新算法,把“冷啟動 50 ms”的 Edge Function 當成第一用戶。
優勢:
- 性能怪獸:benchmark 普遍 ×3-7,包體積 ?75%。
- 類型體驗拉滿:零 any,錯誤優先風格,tryit / parallel / retry 一把梭。
- 維護活躍:Radash 官方已歸檔,Radashi 社區 nightly 發版,RFC 公開投票。
怎么用:
npm i radashi
# API 全新,但文檔極友好
import { debounce, tryit } from 'radashi'
const [err, data] = await tryit(fetch)('/api/user')注意:函數名、參數與 lodash 不同,需要一次“重寫式”遷移,適合新服務或重構窗口期。
moderndash - 折中穩健版

定位:保留 lodash 函數名,內部用原生 API 重寫,刪掉歷史包袱。
優勢:
- 體積 ?70%,性能 ×2-4,瀏覽器下限仍是 ES2020。
- 函數簽名 95% 一致,官方 codemod 自動跑單測,適合“想升級又怕改爆”的團隊。
- 只留高頻 70+ 函數,冷門能力(如 _.iteratee)直接下線,減少“學不動”焦慮。
怎么用:
npm i moderndash
npx @moderndash/codemod src/遷移后大部分單測綠色,老業務代碼幾乎零感知。
前端真的是“大亂燉”
從 jQuery 到 lodash,從 lodash 到“后 lodash 四小龍”,再到各種框架、編譯器、運行時——前端生態圈永遠熱氣騰騰。
工具庫沒有“原罪”,只有“適不適合當前的基礎設施”。
lodash 完成了它的歷史使命,把 ES5 時代的坑填平;現在輪到新工具站在 ES2020+、Tree-Shaking、TypeScript 的肩膀上,把開發體驗再往前推一格。
所以,如果你正準備 npm i lodash,不妨先停 3 秒,試試上面任意一位接班人——同樣順手,卻更輕、更快、更對現代胃口。
技術的車輪滾滾向前,讓我們也保持好奇,保持更新。





























