### what is node ?
- `Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境` **王者**
- Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效
- 事件驱动: 任务执行,发布者,订阅者,事件驱动 ( on emit )
- 非阻塞: 执行某一个任务的同时也可以执行其他任务
- 阻塞: 执行某一个任务,这个任务如果没有执行完成,其他任务必须等待
- 同步:
- 异步
- I/O: 输入/输出( 数据库操作,文件系统操作等 )
- 非阻塞I/O模型: 当我们使用Node.js来实现数据库操作、文件系统等操作时,要进行的异步操作,异步操作的核心传统实现方式就是回调函数
- Node.js的包管理工具npm,是全球最大的开源库生态系统
- 第三方: 国外的
- 建议: 切换国内的, 淘宝国内镜像源
- nrm
- 安装cnpm
`$ npm install -g cnpm --registry=https://registry.npm.taobao.org`
查看是否cnpm安装成功
`cnpm -v `
- 官网 http://nodejs.cn/
- npm 插件官网:https://www.npmjs.com/
## 环境配置
### Node的安装
- 安装包安装
- 官网下载对应的安装包
- 一路next
- nvm安装(有一个类似的工具:nvm)
- Node Version Manager(Node版本管理工具)
- 由于以后的开发工作可能会在多个Node版本中测试,而且Node的版本也比较多,所以需要这么款工具来管理
+
- 默认安装结束之后,默认路径: C:\Users\xxx\AppData\Roaming\nvm
nvm安装教程博客:<https://blog.csdn.net/qq_32682137/article/details/82684898>
- 问题: 如果有的同学,任意目录不能使用nvm,只有在nvm安装目录下才能使用,那么就是环境变量有问题?
- 在高级环境变量中的系统变量中创建两个变量
```
1. NVM_HOME
变量名: NVM_HOME 变量值: nvm安装目录路径
2. NVM_SYMLINK
变量名: NVM_SYMLINK 变量值: Node.js的安装目录
- 在系统变量的path路径中将上面创建的变量引用进来
```
;%NVM_HOME%%NVM_SYMLINK%添加到系统变量 pth路径的后面
```
切记: 不要将path路径删除了
- nvm使用
```
nvm list 列出当前电脑中所有的Node.js的版本
nvm install version 安装某一个版本的Node.js ,
举例: 安装10.12.0版本 nvm install 10.12.0
nvm use version 切换某一个Node.js版本
切换后切记: 要确认Node运行十分正常
node -v
npm -v
如果以上两者输出正常,那么久切换成功了
如果不正常呢?换版本下载安装( 必须在8.9+ 以上)
```
### 相关版本
- node版本常识
- 偶数版本为稳定版 (0.6.x ,0.8.x ,0.10.x)
- 奇数版本为非稳定版(0.7.x ,0.9.x ,0.11.x)
- LTS(Long Term Support)
- [LTS和Current区别](https://blog.csdn.net/u012532033/article/details/73332099)
- 操作方式:
- 重新下载最新的安装包;
- 覆盖安装即可;
- 问题:
- 以前版本安装的很多全局的工具包需要重新安装
- 无法回滚到之前的版本
- 无法在多个版本之间切换(很多时候我们要使用特定版本)
原文:https://www.cnblogs.com/xiong1315/p/11210042.html