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