一、目录
1. node.js 的版本控制
2. npm 代理管控
二、node.js 的版本控制
1. 背景介绍
随着开发的更新迭代, node.js 的版本已经有了相当多的积累。 对于直接开发学习来说, 直接选择最稳定的版本,就可以了。 但在真实的开发环境中, 有时候会因为项目工程的 node 版本不同, 导致出现一些奇怪的适配问题, 因此需要有不同版本的node.js 环境来进行开发。在这里推荐使用 nvm 来实现对 node.js 版本的统一管控, 从而实现快捷的 node.js 版本切换。
( nvm 管理node版本 )
2. 安装与基本使用
nvm 安装地址 https://github.com/coreybutler/nvm-windows/releases
下载完.zip文件之后,直接解压安装即可。
安装完毕之后, 在 cmd(控制台窗口)输入 nvm version, 如果弹出对应版本号, 表示安装成功。
3. 基本使用
通过 nvm list available 指令可以看到当前可以安装的 node 版本号, 然后通过 nvm install + 对应的版本号 即可完成对应 node 版本环境的安装, 再通过 nvm list 指令可以查看当前本机环境下已安装好的 node.js 环境, 以及 nvm use + 对应版本号 指令可以快速切换到对应的版本。
4. nvm 常用指令
- nvm list available 查看当前所有可用的 node 版本呢
- nvm install version 下载对应版本的 node 运行环境
- nvm list 列出当前所有已安装的 node 运行环境
- nvm use version 选择使用的 node 运行环境
5.安装 nvm 常见的问题
q1: 权限问题: 使用 nvm 报出权限问题
a1: 可以将 cmd 窗口切换到 管理员模式下的 cmd 窗口
q2: 控制台乱码问题:使用 nvm 的过程中, cmd 窗口可能会出现编码问题
a3: 使用 chcp 65001 切换编码环境 , 即可。
三、 npm 代理管控
完成了 nvm 的安装, 就基本实现了对 node.js 版本环境的基本管控。node.js 的顺利安装也意味着完成了对 npm 的安装。npm 是 node 包的集中管理工具, 可以方便快捷的管理第三方包。
1. npm 常用指令如下 (| 表示任选其中一个)
- npm init 初始化文件目录,生成对应的 package.js 文件
- npm (install | uninstall | update) packageName -g 安装|卸载|更新 (-g 表示全局安装)
- npm install packageName --save (-dev | -D) 安装为开发模式
- npm info packageName version 查看包对应的版本详细信息
- npm install packageName@version 安装指定版本的包
- npm outdated 查看当前安装的包是否过期
- npm list 罗列当前安装的包
- npm config get registry 查看当前代理配置
注: 将 以上指令中的 npm 替换为 npx 之后, 可以将参考系从全局的 node_modules 移到当前目录下的 node_modules
2. npm 网络问题
说完了常见指令, 就该谈谈 npm 常见的问题了, npm 最常见的问题就是网络问题了。 通常因为网络原因, 容易出现 npm 安装第三方包失败的问题。 这是因为 npm 下载的默认服务器部署于国外, 难免会有一些特别的问题, 因此我们可以通过配置对应的代理镜像来避开网络问题, 但是镜像的网址路径如果特别去记忆也是比较浪费时间的事情, 因此在这里推荐通过 nrm 来管理代理平台(这个模式有点类似于 nvm 管控 node 版本)
安装 nrm —— nrm npm i nrm -g
同样地, 在cmd 窗口输入 nrm --version, 如果显示出对应版本号, 代表安装成功。
3. nrm 的基本使用
通过 nrm ls 指令可以看到当前支持的代理镜像服务器有哪些, 然后使用 nrm use + 对应的镜像别名 就可以更换到 npm 下载的目标路径, 最后是使用 nrm test 可以直接看到当前哪一个镜像代理的网络状况比较好(注: nrm test 的时候, 你当前使用的镜像前会有一个"*"图标)
4. nrm 常用指令
- nrm ls 罗列当前可用镜像
- nrm use 镜像别名 切换到该别名
- nrm test 测试连接速度 | 同时可以看到当前聚焦于哪一个版本
值得一提的是, 想要解决 npm 下载的网络问题。 也可以使用 yarn 和 cnpm 等等, 但由于它们与 npm 下载的区别相当于百度云盘和迅雷这样的感觉, 且网上有很多相关教程,因此此处不再赘述......