nodejs和npm的关系

1. node.js是基于chrome v8 引擎的js运行环境

  chrome v8 是什么 chrome提供的能把js语言编译成系统能够识别的语言的第八个版本;当然别的厂商也有不同的js编译器

chrome v8 做什么 chrome v8 能够独立运行,所以node.js可以基于v8生成自己的运行环境;也可以在浏览器中进行js解析,因为chrome v8 开源发展快,所以chrome 对es6等新技术支持比较快;

2. npm是node.js 内置的一套包管理工具,比如jquery什么的,随着node的火爆发展,npm越来越庞大,插件越来越多

怎么理解npm和node的关系呢,node.js相当于qq游戏大厅,npm就是其中的小游戏;

3.名词解释:NPM 全称是 Node Package Manager 包管理工具

一、npm是什么

当一个网站依赖的js代码越来越多,程序员发现这是一件很麻烦的事情:

去 jQuery 官网下载 jQuery

去 BootStrap 官网下载 BootStrap

去 Underscore 官网下载 Underscore

……

有些程序员就受不鸟了,于是npm就出来了,全称是 Node Package Manager 包管理工具。

这一点和maven、gradle十分相似,只不过maven、gradle是用来管理java jar包的,而npm是用来管理js的。

NPM 的实现思路和maven、gradle是一样的:

1、有一个远程代码仓库(registry),在里面存放所有需要被共享的js代码,每个js文件都有自己唯一标识。

2、用户想使用某个js的时候,只需引用对应的标识,js文件会自动下载下来。

二、Node.js是什么

Node.js是一个Javascript运行环境(runtime environment),不是一个js文件,实质是对Chrome V8引擎进行了封装。Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python 等服务端语言平起平坐的脚本语言。

[1]Node.js提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。

[2]Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。

chrome浏览器和Node.js在解析javascript都使用了v8引擎:

三、npm和Node.js的发展

npm作者已经将npm开发完成,于是发邮件通知 jQuery、Bootstrap、Underscore 作者,希望他们把 jquery、bootstrap 、 underscore 放到npm远程仓库,但是没有收到回应,于是npm的发展遇到了瓶颈。

Node.js作者也将Node.js开发完成,但是 Node.js 缺少一个包管理器,于是他和 npm 的作者一拍即合、抱团取暖,最终 Node.js 内置了 npm。

后来的事情大家都知道,Node.js 火了。随着 Node.js 的火爆,大家开始用 npm 来共享 JS 代码了,于是 jQuery 作者也将 jQuery 发布到 npm 了。所以现在,你可以使用 npm install jquery 来下载 jQuery 代码。现在用 npm 来分享代码已经成了前端的标配。

四、node.js和npm的安装

node.js的安装这里就不再多说了。npm由于内置在node.js中,所以就一并安装了。有时候我们只想单独安装npm,不想安装node.js,这个好像是不行的。