node 与 npm 的关系

5,619 阅读2分钟

npm

npm 是什么

npm 全称是 Node Package Manager ,意思是 Node 的包管理系统。是用来管理 js 的。

npm 的实现思路

  • 有一个远程代码仓库(registy),在里面存放所有需要被共享的 js 代码,每个 js 文件都有自己唯一标识
  • 用户想使用某个 js 的时候,只需引用对应的标识,js 文件就会自动下载下来

Node.js

Node.js 是什么

  • Node.js 是一个 Javascript 运行环境(runtime environment),不是一个 js 文件
  • Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境,是用 C++ 写的
  • Node.js 不是库,是一个运行环境,或者说是一个 JS 语言解释器

Node.js 下运行 JS 代码

方法一:在 Node.js 的交互环境下运行

以前 JS 只能运行在浏览器中,Node.js 出现之后,不管是服务器上,还是我们自己的笔记本上,只要安装了 Node.js 就可以运行 JS 代码了。假设,咱们已经安装好了 Node.js,那么使用 node 命令进入 Node.js 的交互环境

> node

Image.png

执行操作之后,回车,可以看到代码正确执行。 Ctrl + D 可以退出这个交互环境。

方法二:把代码写入文件,用 node 命令执行

在 app.js 文件中写入 js 代码

console.log('hello')

然后在该文件所在目录执行命令

> node app.js

可以看到,hello 被打印在控制台,而这个过程与浏览器并没有关系。

222.png

执行 node app.js 的时候,实际上是运行了一个 node.exe 可执行文件。

vue 工程中 package.json 的 script 中的命令,也是通过 node 来执行的。 每一个字符串对应的都是一段脚本。

333.png

Node.js 与浏览器运行的差异

Node.js 和浏览器是不同的环境,是有着很多细小差异的。

  1. 首先,二者各自包含的全局变量不同。
    • document 对象是用来操作页面的,所以只有浏览器环境下才可以直接使用。但是如果放到 Node.js 环境下与逆行代码,就不要使用 document。
    • Node.js 中可以直接拿来使用的 http 对象,在浏览器环境下就没有。
  2. 其次,Node.js 和浏览器对 ES6 新特性的支持程度也是不同的。

安装

新版的 node.js 已自带 npm,安装 node.js 时会一起安装,npm 的作用就是对 node.js 依赖的包进行管理,也可以理解为用来安装/卸载 node.js 需要装的东西。

参考文献: 什么是 Node.js?