Appearance
如今的web前端开发已经离不开node了,那么经常会遇到一个场景,你自己正开发着一个node12的项目,老板突然叫你去修复个 node10 项目的bug,然后你把代码clone下来npm i
一下,发现报错了。草,node版本问题。现在你把本地安装了个node10,解决了bug,然后 提交代码,继续装回node12,然后开始搬砖。这时候老板又来了,再解决个bug,然后你修复、提交代码、切回12。如此反复不停地切换node版本,浪费了很多时间,耽误了工作进度,然后年底就被优化掉了。。
解决办法
切换版本
1、nvm
第一步:安装可以参考 Github 的 README,也可以直接执行以下命令进行安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
第二步:命令执行成功之后,使用以下命令让 nvm 生效:
source ~/.zshrc
第三步:安装 node,使用以下命令安装最新的 LTS 版本:
nvm install --lts
2、n
安装
$ npm install -g n //安装
$ n 版本号 // n 下载所需node
$ n latest // 下载最新版本
$ n rm 4.4.4 // $ n rm 4.4.4
$ n // 切换版本
6.9.4
ο 7.4.0
4.4.4
以指定的版本来执行脚本 $ n use 7.4.0 index.js 以上两种方案都可以切换版本,n在windows平台不支持 你把代码提交git后,同事clone下来,安装包run一下,报了错,你说这是node版本问题,巴拉巴拉一堆怎么解决,同事没听懂,说有没有简单的办法,不用每次use版本号。你去网上搜了搜,大概有几种解决办法
自动切换版本
1、nvm avn avn-nvm
https://www.jianshu.com/p/6a9ea971469c
$ npm install -g avn avn-nvm // 安装
$ avn setup // 配置环境变量
$ echo "5.9" > .nvmrc // 加上.nvmrc文件
2、nodeinstall
https://www.npmjs.com/package/nodeinstall
原理是把 node runtime 安装到了node_modules里,这样只要全局有个npm能安装包就行,本地启动回去找 node _modules找安装的项目node runtime 个人感觉 有点重,尤其是正式环境是docker的话,自带了可选node版本,就没有什么用了 node在8之后实现了类似功能
3、nvs
https://github.com/jasongin/nvs
$ export NVS_HOME="$HOME/.nvs"
$ git clone https://github.com/jasongin/nvs --depth=1 "$NVS_HOME"
$ . "$NVS_HOME/nvs.sh" install
$ nvs remote node https://npm.taobao.org/mirrors/node/
也需要配置 项目文件
echo "5.9" > .nvmrc
最后选择了nvs的方式