一文简述你不知道的pstorage诞生记!!!

59 篇文章 6 订阅
59 篇文章 1 订阅

序言

自古以来,有人的地方就有江湖,有猿的地方就有社区。GitHub就是猿类最大的社区。在这个社区,大家可以自由地分享源代码(线上代码仓库)、讨论问题(Issue 列表)、收集学习资源。

但是江湖不是一日形成的,社区不是一开始就有的,在没有社区之前,程序猿们是怎么共享代码的呢?

在 GitHub 还没有兴起的年代,前端是通过网址来共享代码。

比如你想使用 jQuery,那么你点击 jQuery 网站上提供的链接就可以下载 jQuery,放到自己的网站上使用。

GitHub 兴起之后,程序猿们欢欣跳跃,开始也有人使用 GitHub 的下载功能:

但是,很快,一部分勤劳的程序猿们发现了一个问题,当一个网站依赖的代码越来越多,程序员发现这是一件很麻烦的事情。当项目中依赖的代码越来越多,需要去不同的网站分别下载不同的依赖然后组合到一起,非常繁琐。

比如:

需要使用 jQuery 要去JQuery的官网下载,需要使用BootStrap,要去BootStrap官网下载,需要 Underscore要去 Underscore 官网下载,……。

OMG,程序猿们原本不多的头发又要被抓掉一大把。看着同猿们一个个抓耳挠腮,痛苦不堪的样子,一个拥有三大美德的程序员 Isaac Z. Schlueter (以下简称 Isaaz)给出一个解决方案:用一个工具把这些代码集中到一起来管理吧!

这个工具就是他用 JavaScript (运行在 Node.js 上)写的 npm,全称是 Node Package Manager 。

方案原理如下:
  1. 买个服务器作为代码仓库(registry),在里面放所有需要被共享的代码。

  2. 发邮件通知 jQuery、Bootstrap、Underscore 的作者使用 npm publish 把代码提交到 registry 上,分别取名 jquery、bootstrap 和 underscore(注意大小写)。

  3. 社区里的其他人如果想使用这些代码,就把 jquery、bootstrap 和 underscore 写到 package.json 里,然后运行 npm install ,npm 就会帮他们下载代码。

  4. 下载完的代码出现在 node_modules 目录里,可以随意使用了。这些可以被使用的代码被叫做「包」(package),这就是 NPM 名字的由来:Node Package(包) Manager(管理器)。

Isaaz 通知 jQuery 作者 John Resig,John Resig作者瞅了他一眼,你谁呀?

所以Isaaz要想一统江湖,必须先要收罗一大堆小弟,当一大堆小弟都山呼海啸称他大哥的时候,再出去混,就不用做自我介绍了。

所以,只有社区里的人都觉得“npm 是个宝”的时候,John Resig 才会考虑使用 npm。

Isaaz对这一点心知肚明,这就是江湖。

那么Isaaz怎么让 npm 火起来呢?

有一天Isaaz在江湖游荡,突然发现一个在德国打猎的美国程序猿Ryan Dahl打造一个打猎神器Node.js,但是由于这些箭都锋利无比,Ryan Dahl无法将他们妥善的保管起来,并随身携带(Node.js 缺少一个包管理器)。Isaaz毫不犹豫地将自己的乾坤袋NPM双手奉上。Ryan Dahl 眼冒金星,欣喜若狂,两人一拍即合,最终 Node.js 内置了 npm。

后来的事情大家都知道,Node.js 火了。

随着 Node.js 的火爆,大家开始用 npm 来共享 JS 代码了,于是 jQuery 作者也将 jQuery 发布到 npm 了。

所以现在,你可以使用 npm install jquery 来下载 jQuery 代码。

现在用 npm 来分享代码已经成了前端的标配。比如现在大家要使用express包。只需要在npm的官网,输入express搜索下,就能够找到相应模块。

然后点击进去,就可以看到安装使用提示,如下:

后记:

Node.js 目前由 Ryan Dahl 当时所在的部落(joyent 公司)继续开发。Ryan Dahl 现在已经去研究 AI 和机器学习了,并且他把 Node.js 的维护权交给了 Isaaz。

而 Isaaz 维护了一段时间后,辞职了,成立了一个公司专门维护 npm 的 registry,公司名叫做 npm 股份有限公司。谁说开源不能赚钱的?

回顾前端的发展是你会发现,都是社区里的某个人,发布了一份代码,最终影响前端几年的走向。比如 jQuery,比如 Node.js,比如 npm。(其实其他语言也是这样的)

所以,社区的力量是巨大的。有时候还是得记住“为人民服务”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值