打造前端團隊的 React CLI 工具

關於前端 CLI 工具

Angular CLI 和 Vue CLI 是官方推薦的 CLI 工具,可直接在生產環境中使用,但 Create React App 的定位卻有點不同,它的目標是讓你快速 Set up 一個 React 應用,如果你要在生產環境中使用,因爲它的可定製性並不好,你可能要 eject,然後手動維護 webpack 配置。

我們團隊的歷程

首先說背景,這幾年以來,我所在的團隊使用的都是 React 技術棧,我們的業務屬性是要頻繁創建新項目的,但業務的生命週期並不一定短,也可能是長期的。

最開始,應該該是三四年前左右,那時的解決方案比較原始,每個人維護自己的 webpack 配置,有新項目就 copy and paste。這樣的優點是靈活,本人對自己項目的配置可控性,缺點是配置升級和維護都不容易,項目交接後問題多。

後來,我們使用項目 Boilerplate 的方式,團隊內維護一份 Boilerplate,所有新項目都使用這個 Boilerplate 初始化。這樣的優點是 webpack 配置統一化,易於多人合作,缺點是配置升級不容易,因爲 webpack 配置是暴露在項目中的,配置會被人修改,很容易髒掉。

再後來,官方出了 Create React App。發現原來 webpack 配置可以不暴露在項目中,可以隱藏在 node_modules 中,這是一種非常優雅的解決方案。所以我們使用了和 Create React App 類似的解決方案,創建自己團隊專屬的前端 CLI 工具,這也是我們當前的解決方案。這樣的優點是 webpack 配置被隱藏,項目目錄比較乾淨,webpack 配置升級容易,只需升級 CLI,缺點是維護 CLI 是一個大工程,需要較多的人力,且需要踩非常多的坑。

我推薦的方案

回到文章的標題:打造前端團隊 React CLI 工具,我認爲每個前端團隊都應該有自己的 CLI 工具,這是一個團隊技術和經驗沉澱的重要根據地。

CLI 工具可以承擔非常多的工作,比如初始化項目、開發、測試、打包、部署、組件開發等,換一句話說,CLI 工具可以參與到研發的整個生命週期中,所以它是團隊技術和經驗沉澱的重要根據地。

這裏重點要講的是 CLI 所承擔的腳手架功能,Create React App 非常優秀,但我不建議作爲團隊工具直接使用,我也不建議從零開始去實現一個 Create React App(特別是一箇中小前端團隊),我的建議是基於 Create React App 創建,爲什麼呢?因爲 Create React App 足夠問題,出現問題的概率小,站在巨人肩膀上,你可以省很多精力,把更多的精力投入到業務問題中。

基於 Create React App 創建 CLI

下面是一個我基於 Create React App 創建的 CLI:

安裝:

yarn global add dahlia-cli

初始化項目:

dh new myapp

項目目錄:

.
├── README.md
├── package.json
├── pages
│   └── index.tsx
└── tsconfig.json

啓動開發服務器:

cd myapp
dh start

dh

原理是非常簡單,其實就是對 Create React App 定製化,讓它成爲適合你團隊的工具,但你工具是緊跟 React 社區的,擁有很好的穩定性。

有興趣瞭解細節的可以看 dahlia-cli

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章