新一代 NPM 包研發工具 father 4 發佈
大概兩個月前,我們發佈了 father 4 的 RC 版本,在 RC 階段我們收到了不少嚐鮮用戶的建議,也持續對 father 4 做了不少優化;今天,終於可以滿懷喜悅地和大家分享 father 4 的第一個正式版本了!
作爲一款全新的 NPM 包研發工具,father 4 的具備如下核心特性:
-
• ⚔️ 雙模式構建: 支持 Bundless 及 Bundle 兩種構建模式,ESModule 及 CommonJS 產物使用 Bundless 模式,UMD 產物使用 Bundle 模式
-
• 🎛 多構建核心: Bundle 模式使用 Webpack 作爲構建核心,Bundless 模式使用 esbuild 及 Babel 兩種構建核心,可通過配置自由切換
-
• 🔖 類型生成: 無論是源碼構建還是依賴預打包,都支持爲 TypeScript 模塊生成
.d.ts
類型定義 -
• 🩺 項目體檢: 對 NPM 包研發常見誤區做檢查,讓每一次發佈都更加穩健
-
• 🏗 微生成器: 爲項目追加生成常見的工程化能力,例如使用 jest 編寫測試
-
• 📦 依賴預打包: 開箱即用的依賴預打包能力,幫助 Node.js 框架 / 庫提升穩定性、不受上游依賴更新影響(實驗性)
除了 RC 發佈時 爲大家隆重介紹的雙模式構建、多 Bundless 構建核心 及 依賴預打包之外,正式版還帶來了項目體檢及微生成器兩大新特性。
項目體檢
爲了幫助大家避免 NPM 包研發中的常見誤區、確保項目的穩定可用,father 4 提供了 father doctor
這條項目體檢命令,目前包含 7 條規則,比如是否使用了幽靈依賴、sideEffects 是否配置有誤、是否忘記把文件添加到 files 字段等。
father doctor
已包含在默認腳手架的 prepublishOnly
腳本配置中,爲我們的每一次發佈保駕護航。執行效果如下:
如果你還有更多的研發建議或遇到過其他誤區,歡迎 一起討論、作爲未來 father doctor
的校驗規則之一。
微生成器
不同於 father 2 內置了諸如 precommit
、test
等工程化能力,爲了保持更好的靈活性、且避免因爲 father 自身的迭代頻次與社區上游生態脫節,father 4 不再內置這些工程化能力,而是和 Umi 4 類似、爲大家提供更加自由的微生成器能力——father g <name>
命令。
例如,項目前期沒有測試用例,但後期需要使用 Jest 來測試項目源代碼,只需要簡單地執行 father g jest
,father 將會爲我們自動生成運行 Jest 需要的依賴、配置:
後續 father 還將提供 commitlint
、lint
等微生成器模板。
上手及遷移
如果你剛剛聽說 father,又正好需要一款 NPM 包研發工具,可參考 GitHub 倉庫的 快速上手指南 初始化一個新項目。
如果你是 father 的老用戶,想把舊項目升級,可參考 GitHub 倉庫的 遷移指南。
後續規劃
正式版發佈只是一個新的開始,後續我們還計劃迭代如下功能:
-
1. 插件接入能力,給項目提供定製化的入口,並發展插件生態
-
2. 與 dumi 2.0 集成、爲 UI 組件庫開發者提供更加一體化的方案
-
3. Node.js 項目 Pure ESM 支持
-
4. 更新日誌生成
-
5. ……
如果你也對 NPM 研發方案有興趣或有經驗,歡迎 參與到 father 4 的建設中,一起將它變得更好 ❤️
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/3g2Ztvpvd1mDbHo3qUIqZg