49195,npm最后的瘋狂?盤點(diǎn)10款最有前途JavaScript構(gòu)建工具
49195
這是在GitHub上拉取一個(gè)react 開發(fā)的開源項(xiàng)目,在本地 npm install 安裝依賴庫(kù)時(shí),所面對(duì)的數(shù)字。
npm 到底什么時(shí)候能迎來變革,這些年先先后后有許多優(yōu)秀的nodejs構(gòu)建工具出現(xiàn),包括但不限于:
1、npm
號(hào)稱宇宙最重的東西,依賴地獄由此而來。
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題。允許用戶:
?下載別人編寫的第三方包?下載并安裝別人編寫的命令行程序?將自己編寫的包或命令行程序,上傳到NPM服務(wù)器供別人使用
npm
2、cnpm
cnpm是一個(gè)完整 npmjs.org 鏡像,用于國(guó)內(nèi)開發(fā)者加速訪問,但時(shí)常不能保證最新,因?yàn)镴avaScript社區(qū)開發(fā)者非常踴躍,更新很快。
阿里巴巴為了眾多開發(fā)者的便捷便挺身而出,推出了淘寶鏡像(即cnpm),它把npm官方的“包”全部搬到國(guó)內(nèi),供廣大開發(fā)者使用。
3、yarn
快速、可靠、安全的依賴管理工具。 緩存了每個(gè)下載過的包,所以再次使用時(shí)無需重復(fù)下載。 同時(shí)利用并行下載以最大化資源利用率,因此安裝速度更快。
yarn
4、gulp
基于流(stream)的自動(dòng)化構(gòu)建工具,推出這么些年,一直不冷不熱。不難用,也不太好用。
gulp
5、rollup
一個(gè) JavaScript 模塊打包器,可以將小塊代碼編譯成大塊復(fù)雜的代碼。作者很高產(chǎn),現(xiàn)在前端框架 sveltejs 就是他的又一力作。
rollup
6、grunt
對(duì)于需要反復(fù)重復(fù)的任務(wù),例如壓縮(minification)、編譯、單元測(cè)試、linting等,grunt 可以減輕壓力,簡(jiǎn)化你的工作流。
grunt
7、npx
可以運(yùn)行使用 Node.js 構(gòu)建并通過 npm 倉(cāng)庫(kù)發(fā)布的代碼,極大地簡(jiǎn)化了開發(fā)階段的繁雜配置。
npx
8、pnpm
速度快、節(jié)省磁盤空間的軟件包管理器,是同類工具速度的將近 2 倍,node_modules 中的所有文件均鏈接自單一存儲(chǔ)位置,內(nèi)置了對(duì)單個(gè)源碼倉(cāng)庫(kù)中包含多個(gè)軟件包的支持,創(chuàng)建的 node_modules 默認(rèn)并非扁平結(jié)構(gòu),因此代碼無法對(duì)任意軟件包進(jìn)行訪問。
pnpm
9、Vite
后起之秀,也最亮眼。號(hào)稱是下一代的前端工具鏈,為開發(fā)提供極速響應(yīng)。打包和編譯啟動(dòng)速度非???/span>,用過的都知道。現(xiàn)在社區(qū)已經(jīng)在擁抱vite了。
vite
當(dāng)然還有很多小眾而好用的工具,沒有列舉出來。由此可見,前端生態(tài)之豐富,超其他語言生態(tài)遠(yuǎn)甚。
10、就這樣了嗎?
能不能有一項(xiàng)技術(shù),可以兼容 npm,但同時(shí)又不再使用 npm 的機(jī)制呢?今年推出的 bun 正是這樣的一種嘗試。
它完全另起爐灶,沒有繼續(xù)跟風(fēng) npm,而是自己造了JavaScript的運(yùn)行時(shí),還有包管理。
這個(gè)平臺(tái)還太新,一下子收獲了接近40K點(diǎn)贊。但是,前端工程化不是 hello world 代碼,實(shí)際場(chǎng)景中的業(yè)務(wù)往往很復(fù)雜,有許多掣肘。
bun 在這一領(lǐng)域的嘗試,還要經(jīng)歷實(shí)踐的檢驗(yàn),才能慢慢趨于穩(wěn)定。我們希望 bun 可以有更好的表現(xiàn)。