设为首页 收藏本站
查看: 3503|回复: 0

[经验分享] Node.js[1] 俯瞰NPM

[复制链接]

尚未签到

发表于 2017-2-23 11:26:45 | 显示全部楼层 |阅读模式


    • Node.js[5] connect & express简介
    • Node.js[4] 第一个模块
    • Node.js[3] 俯瞰API (整理中)
    • Node.js[2] Hello Node
    • Node.js[1] 俯瞰NPM
    • Node.js[0] 简介

  上篇提到,node本身只提供实现应用程序的精简api集合。NPM(Node Packaged Module,以下简称模块)是node内置功能,目的在于让node具有可扩展性。本文不深入讲解模块的实现细节,会在后续《第一个node模块》中详述;下文详细介绍NPM Registry的模块现状。
  这篇文章用到的数据如无特指,均来自2012-11-18
   Nodejs.org
  先简单了解下nodejs.org的各个子页面(或子站点):


  • Homepagenode官网主页,简介+demo
  • Download各平台node安装包下载页
  • About node简介,推荐底部的slide JsConf2009,JsConf2010
  • NPM RegistryNPM库
  • DocsAPI文档
  • Blog目前就是个node更新日志列表
  • Community node社区入口,分类罗列了各种资源
  概念上应该将NPM放在Community内;单列出来,可以看到NPM在node生态环境中的重要地位。事实也是如此,没有NPM就没有node的今天,这话一点不假;只有Ryan一个人的努力,就算能把node写得天花烂醉,也不可能把如此庞大丰富的NPM库写出来。
NPM Registry
  NPM Registry(NPM库)提供模块的查询、数据统计、评论等功能。评论需要登陆,命令行首次使用npm publish时按照提示注册(详细使用方法请参见NPM docs);也可以在这个站点注册。
数据统计
  NPM Registry首页就是一堆模块统计列表(暂且叫榜单)构成的。从上至下依次列出了:


  • 模块历史下载记录(Node Packaged Modules)
  • 最近上传模块(Recently Updated),每个模块都有亮相的机会,很温馨!
  • 最多依赖模块(Most Depended Upon)
  • 最受欢迎模块(Most Starred)
  • 最高产作者(Most Prolific Authors)
  最多依赖模块和最受欢迎模块是衡量模块质量的2个重要榜单;这里面的部分模块也会在后续文章中反复提到;“最高产作者”中的tjholowaychuk(以后多用TJ简称,connect、express、jade、mocha等一堆高质量模块的作者 DSC0000.png )、isaacs等今后也会多次提及。
  通过看这些榜单,可以对node有直接的感受;以最多依赖模块为例:

  • 1698 underscore util库,Backbone.js项目的一部分
  • 1033 request Http request method
  • 1002 async 用同步的代码风格写异步代码
  • 935 coffee-script
  • 832 express 轻量Web App Framework,基于connect
  • 812 optimist 命令行辅助
  • 634 commander 命令行辅助
  • 571 colors 命令行着色辅助
  • 436 uglify-js 压缩
  • 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
CSSless 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库网络IOrequest connect socket.io oauth qs formidable nodemailer http-proxy passport-oauth ws restler socket.io-client node-static dnode passport
本地IOwrench glob mkdirp rimraf watch findit event-stream log4js bindings temp fstream
数据库IOredis mongodb mongoose mysql hiredis knox pg
框架应用框架express backbone
测试框架mocha qunit vows should nodeunit
  吐血 DSC0001.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346177-1-1.html 上篇帖子: node.js入门 下篇帖子: as3与node.js的socket通信
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表