概述
目录
一、npm
社区
共享代码
麻烦
具体步骤
发展
后续
社区的力量
二、node.js
1.1 Node.js 概述
1. Node.js 是什么
2. 为什么浏览器和 Node.js 都可以运行 JavaScript
3.Node.js 能够做什么(*****)
三、nodejs和npm的关系
3.1 Node.js 软件包
3.2 什么是 NPM
================================================
对比记忆:
maven是jar包管理工具,npm是js包管理工具。maven去下载pom.xml中列出的jar包依赖,同样npm去下载package.json中列出的js包依赖。
JRE/JVM是一个跨平台的java运行环境,用来运行服务器后端程序;node.js 是一个跨平台的js运行环境。用来构建服务器端前端程序。
=================================================
一、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。(其实其他语言也是这样的)
所以,社区的力量是巨大的。
二、node.js
原创链接:2021了,真的不要再说 Node.js 是一门编程语言了_CS_DGD的博客-CSDN博客
1.1 Node.js 概述
1. Node.js 是什么
node.js是一个跨平台javascrip的运行环境。
这就是官网的描述“Node.js® is an open-source, cross-platform JavaScript runtime environment ”
2. 为什么浏览器和 Node.js 都可以运行 JavaScript
因为浏览器和 Node.js 都内置了 JavaScript V8 Engine。
3.Node.js 能够做什么(*****)
一看见node.js就表明这是一个前端工作(当然,现在有利用node.js把前端进行后端化的趋势)。
我们通常使用它来构建服务器端应用和创建前端工程化工具。
JavaScript 运行在客户端浏览器中我们就叫它客户端 JavaScript。
JavaScript 运行在 Node.js 中我们就叫它服务器端 JavaScript。
所以elasticsearch-head是一个服务器端的前端工具。
三、nodejs和npm的关系
3.1 Node.js 软件包
每一个基于 Node.js 平台开发的应用程序都是 Node.js 软件包。
所有 Node.js 软件包都被托管在 www.npmjs.com 中。
3.2 什么是 NPM
Node Package Manager,Node.js 环境中的软件包管理器。随 Node.js 一起被安装。
它可以将 Node 软件包添加到我们的应用程序中并对其进行管理,比如下载,删除,更新,查看版本等等。
它没有用户界面,需要在命令行工具中通过命令的方式使用,对应的命令就是 npm。
NPM 和 Node 是两个独立的应用程序,只是被捆绑安装了,可以通过版本号证明。
最后
以上就是辛勤蓝天为你收集整理的npm是什么?干什么的?node.js是什么?对比记忆:一、npm二、node.js三、nodejs和npm的关系的全部内容,希望文章能够帮你解决npm是什么?干什么的?node.js是什么?对比记忆:一、npm二、node.js三、nodejs和npm的关系所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复