UmiJS基礎(chǔ)教程(1)- 創(chuàng)建項(xiàng)目
Umi 是什么
Umi,中文可發(fā)音為烏米,是可擴(kuò)展的企業(yè)級(jí)前端應(yīng)用框架。Umi 以路由為基礎(chǔ)的,同時(shí)支持配置式路由和約定式路由,保證路由的功能完備,并以此進(jìn)行功能擴(kuò)展。然后配以生命周期完善的插件體系,覆蓋從源碼到構(gòu)建產(chǎn)物的每個(gè)生命周期,支持各種功能擴(kuò)展和業(yè)務(wù)需求。
Umi 是螞蟻金服的底層前端框架,已直接或間接地服務(wù)了 3000+ 應(yīng)用,包括 java、node、H5 無線、離線(Hybrid)應(yīng)用、純前端 assets 應(yīng)用、CMS 應(yīng)用等。他已經(jīng)很好地服務(wù)了我們的內(nèi)部用戶,同時(shí)希望他也能服務(wù)好外部用戶。
Umijs的功能
1、可擴(kuò)展,Umi 實(shí)現(xiàn)了完整的生命周期,并使其插件化,Umi 內(nèi)部功能也全由插件完成。此外還支持插件和插件集,以滿足功能和垂直域的分層需求。
2、開箱即用,Umi 內(nèi)置了路由、構(gòu)建、部署、測(cè)試等,僅需一個(gè)依賴即可上手開發(fā)。并且還提供針對(duì) React 的集成插件集,內(nèi)涵豐富的功能,可滿足日常 80% 的開發(fā)需求。
3、企業(yè)級(jí),經(jīng)螞蟻內(nèi)部 3000+ 項(xiàng)目以及阿里、優(yōu)酷、網(wǎng)易、飛豬、口碑等公司項(xiàng)目的驗(yàn)證,值得信賴。
4、大量自研,包含微前端、組件打包、文檔工具、請(qǐng)求庫(kù)、hooks 庫(kù)、數(shù)據(jù)流等,滿足日常項(xiàng)目的周邊需求。
5、完備路由,同時(shí)支持配置式路由和約定式路由,同時(shí)保持功能的完備性,比如動(dòng)態(tài)路由、嵌套路由、權(quán)限路由等等。
6、面向未來,在滿足需求的同時(shí),我們也不會(huì)停止對(duì)新技術(shù)的探索。比如 dll 提速、modern mode、webpack@5、自動(dòng)化 external、bundler less 等等。
Umijs的局限性
1、需要支持 IE 8 或更低版本的瀏覽器。
2、需要支持 React 16.8.0 以下的 React。
3、需要跑在 Node 10 以下的環(huán)境中。
4、有很強(qiáng)的 webpack 自定義需求和主觀意愿。
5、需要選擇不同的路由方案。
項(xiàng)目構(gòu)建
01安裝node
首先得有 node,并確保 node 版本是 10.13 或以上。目前node的穩(wěn)定版是12.16.2。
node下載地址:https://nodejs.org/en/。
根據(jù)不同的系統(tǒng)選擇不同的安裝方式。windows直接下載可執(zhí)行文件就可以了。

溫馨提示
采用如下命令:node -v 可以查看當(dāng)前安裝的版本。
02新建目錄
新建一個(gè)目錄。
windows系統(tǒng)直接鼠標(biāo)右鍵就可以創(chuàng)建了。也可以用如下命令來創(chuàng)建:


溫馨提示
各個(gè)系統(tǒng)創(chuàng)建目錄的的命令都是一樣的。

溫馨提示
這里跟創(chuàng)建antd pro項(xiàng)目是不一樣的的。創(chuàng)建antd pro 的時(shí)候,拉去模板代碼的時(shí)候會(huì)根據(jù)最后一個(gè)參數(shù)來創(chuàng)建目錄。這里要先創(chuàng)建目錄。
創(chuàng)建目錄之后,進(jìn)入該目錄。

03創(chuàng)建項(xiàng)目
通過官方工具創(chuàng)建項(xiàng)目。

溫馨提示
如果是用yarn。命令如下:yarn create @umijs/umi-app
出現(xiàn)上圖的信息,說明我們創(chuàng)建項(xiàng)目成功。
接下來安裝依賴:

出現(xiàn)如下信息說明,依賴安裝完成。(根據(jù)網(wǎng)絡(luò)的不同,安裝完成需要的時(shí)間不同)

04啟用項(xiàng)目
上述3步操作成功之后,采用:npm run start 命令來啟動(dòng)項(xiàng)目。

出現(xiàn)上面兩個(gè)地址說明啟動(dòng)成功?,F(xiàn)在打開瀏覽器,輸入上面的地址,出現(xiàn)如下的界面:

到這里,umijs的項(xiàng)目就創(chuàng)建完成了。