國外程序員怒了:你們不要再則制作NPM包了
我們在NPM中達到了100萬個包大關——Node.js中事實上的包管理器。相信我,其中大約有30%左右的包都在做同樣的事情。所以現在的問題是——什么時候夠了?
過去
早期,Node.js是一個簡單的運行時,但由于缺少庫而受到限制,但是隨著時間的流逝,越來越多的人開始制作工具、庫甚至是Cloud IDE。Node.js引發了一場革命,即JavaScript不再局限于瀏覽器中,而且它擅長于此。
但隨著時間的推移,Node.js變得更加健壯,并開始走在瀏覽器的前面——這是一個新的JavaScript生態系統,它不受供應商缺乏的ECMAScript支持的限制。隨著時間的流逝,一些古老的庫變得越來越陳舊。
但這和NPM軟件包有什么關系呢?
問題是,在那些早期的日子里,也有包污染 (其今天仍然是一個問題),那里有更多無用的包比有目的的東西更多。他們中的一些人甚至重新發明了輪子,在某些包中被丟棄了將近6年。

在這個例子中,我們對Redis有不同的包,Redis已經有一段時間沒有維護了(不過grunt包沒有維護還是可以理解的,因為它們已經被取代了),而且大部分都是你可以在app-level的實現中做的事情,顯然不需要使用該程序包。
因此,停止重新發明輪子,除非你需要
假設你發明了一個記錄儀,很酷!你想讓人們用它,更酷!
但是,讓我提醒你,總有成千上萬的庫可以做同樣的事情,所以如果你的記錄儀是特定領域的,不要嘗試著把它做成NPM包,把它放在你打算使用它的項目里就可以了。
只有在某些情況下,你才需要真正地為每個人的利益發明輪子——因為目前的公共庫表現不佳,或者說普遍的不好。
停止制造毫無用處的包
認真一點,停下來。你在破壞軟件包倉庫的意義,它是項目要使用的可重用模塊的倉庫。我不在乎它是否是一個笑話包,你是在浪費對象存儲,而它本來可以由一個更有用的模塊占用的。
我們有像Maven和PackageCloud這樣健全的包倉庫,那么為什么我們不能像它們一樣專業和健全呢?我們和他們沒有什么不同。
總結
NPM和JavaScript社區是我們現在所說的“現代網絡”的推動力。但如果我們一直做無用功,一直誤解了運行時有包管理器的概念,那么我們就會成為一個包管理器不應該成為的榜樣。
所以,讓我們嘗試著改變一下庫編寫的思路——只有在沒有辦法的情況下,或者目前的實現方式對廣大網友來說非常吃不消的時候,才去做一些東西。如果你做的東西是針對特定領域的項目,那就完全不要去做了。