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
执行操作之后,回车,可以看到代码正确执行。
Ctrl + D 可以退出这个交互环境。
方法二:把代码写入文件,用 node 命令执行
在 app.js 文件中写入 js 代码
console.log('hello')
然后在该文件所在目录执行命令
> node app.js
可以看到,hello 被打印在控制台,而这个过程与浏览器并没有关系。
执行 node app.js 的时候,实际上是运行了一个 node.exe 可执行文件。
vue 工程中 package.json 的 script 中的命令,也是通过 node 来执行的。 每一个字符串对应的都是一段脚本。
Node.js 与浏览器运行的差异
Node.js 和浏览器是不同的环境,是有着很多细小差异的。
- 首先,二者各自包含的全局变量不同。
- document 对象是用来操作页面的,所以只有浏览器环境下才可以直接使用。但是如果放到 Node.js 环境下与逆行代码,就不要使用 document。
- Node.js 中可以直接拿来使用的 http 对象,在浏览器环境下就没有。
- 其次,Node.js 和浏览器对 ES6 新特性的支持程度也是不同的。
安装
新版的 node.js 已自带 npm,安装 node.js 时会一起安装,npm 的作用就是对 node.js 依赖的包进行管理,也可以理解为用来安装/卸载 node.js 需要装的东西。
参考文献: 什么是 Node.js?