Node.js[1] 俯瞰NPM


上篇提到,node本身只提供實現應用程序的精簡api集合。NPM(Node Packaged Module,以下簡稱模塊)是node內置功能,目的在於讓node具有可擴展性。本文不深入講解模塊的實現細節,會在后續《第一個node模塊》中詳述;下文詳細介紹NPM Registry的模塊現狀。

這篇文章用到的數據如無特指,均來自2012-11-18

Nodejs.org

先簡單了解下nodejs.org的各個子頁面(或子站點):

概念上應該將NPM放在Community內;單列出來,可以看到NPM在node生態環境中的重要地位。事實也是如此,沒有NPM就沒有node的今天,這話一點不假;只有Ryan一個人的努力,就算能把node寫得天花爛醉,也不可能把如此龐大豐富的NPM庫寫出來。

NPM Registry

NPM Registry(NPM庫)提供模塊的查詢、數據統計、評論等功能。評論需要登陸,命令行首次使用npm publish時按照提示注冊(詳細使用方法請參見NPM docs);也可以在這個站點注冊

數據統計

NPM Registry首頁就是一堆模塊統計列表(暫且叫榜單)構成的。從上至下依次列出了:

最多依賴模塊最受歡迎模塊是衡量模塊質量的2個重要榜單;這里面的部分模塊也會在后續文章中反復提到;“最高產作者”中的tjholowaychuk(以后多用TJ簡稱,connect、express、jade、mocha等一堆高質量模塊的作者太棒了)、isaacs等今后也會多次提及。

通過看這些榜單,可以對node有直接的感受;以最多依賴模塊為例:

  1. 1698 underscore util庫,Backbone.js項目的一部分
  2. 1033 request Http request method
  3. 1002 async 用同步的代碼風格寫異步代碼
  4. 935 coffee-script
  5. 832 express 輕量Web App Framework,基於connect
  6. 812 optimist 命令行輔助
  7. 634 commander 命令行輔助
  8. 571 colors 命令行着色輔助
  9. 436 uglify-js 壓縮
  10. 421 connect Http Server中間件庫

單從這份榜單就能看到各種util、app框架、編譯器等,種類繁多。

 

模塊分類

NPM Registry已經有接近18000個模塊,要想完整的做一個分類顯然力不從心,這里僅參考最多依賴模塊top100。類別比較難定,暫定為2級,諸君有好的分類方法請指教。

類別1 類別2 模塊
通用庫 JS語言擴展 underscore xml2js lodash moment  underscore.string jquery sprintf minimatch hook.io browserify eventemitter2 cheerio validator
canvas requirejs traverse dateformat
  JS流程控制 async q step seq
  模板類 jade ejs mustache handlebars js-yaml hogan.js eco
  CSS less stylus nib
  命令行輔助 optimist commander colors nopt nconf prompt cli nomnom cli-color
  調試輔助 debug winston eyes jsdom
  部署 uglify-js grunt clean-css jshint
  其他 coffee-script node-uuid mime pkginfo  semver marked npm sax esprima through growl htmlparser superagent
IO庫 網絡IO request connect socket.io oauth qs formidable nodemailer http-proxy passport-oauth ws restler socket.io-client node-static dnode passport
  本地IO wrench glob mkdirp rimraf watch findit event-stream log4js bindings temp fstream
  數據庫IO redis mongodb mongoose mysql hiredis knox pg
框架 應用框架 express backbone
  測試框架 mocha qunit vows should nodeunit

吐血生病


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM