当前位置:首页 > Web开发 > 正文

后续 Node.js 目前由 Ryan Dahl 当时所在的公司 joyent 继续开发

2024-03-31 Web开发

网上的 npm 教程主要都在讲怎么安置、配置和使用 npm,却不报告新人「为什么要使用 npm」。今天我就来讲讲这个话题。

本文方针读者是「不太了解 npm 的新人」,大神您别看了,不然又说我烦琐了 ??。

社区

措施员自古以来就有社区文化:

社区的意思是:拥有配合职业或兴趣的人们,自发组织在一起,通过分享信息和资源进行合作。虚拟社区的参预者经常会在线讨论相关话题,或访谒某些网站。

前端措施员也有社区,世界上最大的前端社区应该就是 GitHub 了。前端通过 GitHub 来

分享源代码(线上代码货仓)

讨论问题(Issue 列表)

收集学习资源和常去的网站(好比我收集的优质中文前端博客)

插手社区最大的好处之一是,你可以使用别人孝敬的代码,你也可以孝敬代码给别人用。

共享代码

前端是怎么共享代码的呢?

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

好比你想使用 jQuery,那么你点击 jQuery 网站上供给的链接就可以下载 jQuery,放到本身的网站上使用

GItHub 兴起之后,社区中也有人使用 GitHub 的下载成果:

麻烦

当一个网站依赖的代码越来越多,措施员发明这是一件很麻烦的工作:

去 jQuery 官网下载 jQuery

去 BootStrap 官网下载 BootStrap

去 Underscore 官网下载 Underscore

……

有些措施员就受不鸟了,一个拥有三大美德的措施员 Isaac Z. Schlueter (以下简称 Isaaz)给出一个解决方案:用一个工具把这些代码集中到一起来打点吧!

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

具体法式

NPM 的思路概略是这样的:

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,他会承诺吗?这事儿不必然啊,对不同错误。

只有社区里的人都感受 「npm 是个宝」的时候,John Resig 才会考虑使用 npm。

那么 npm 是怎么火的呢?

npm 的成长是跟 Node.js 的成长相辅相成的。

Node.js 是由一个在德国事情的美国措施员 Ryan Dahl 写的。他写了 Node.js,但是 Node.js 缺少一个承打点器,于是他和 npm 的作者一拍即合、抱团取暖,最终 Node.js 内置了 npm。

后来的工作大家都知道,Node.js 火了。

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

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

此刻用 npm 来分享代码已经成了前真个标配。

后续

Node.js 目前由 Ryan Dahl 其时地址的公司 joyent 继续开发。Ryan Dahl 此刻已经去研究 AI 和机器学习了,并且他把 Node.js 的维护权交给了 Isaaz。(我是不是也应该去研究 AI 和机器学习啊锻练)

而 Isaaz 维护了一段时间后,告退了,创立了一个公司专门维护 npm 的 registry,公司名叫做 npm 股份有限公司……谁说开源不能赚钱的~

社区的力量

回顾前真个成长是你会发明,都是社区里的某小我私家,颁布了一份代码,最终影响前端几年的走向。好比 jQuery,好比 Node.js,好比 npm。(其实其他语言也是这样的)

所以,社区的力量是巨大的。

原文链接:https://zhuanlan.zhihu.com/p/24357770

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31137.html