今天在 Ubuntu 上折腾了一下 JavaScript 开发环境,顺手记个笔记,免得以后重装系统或者换机器的时候又得重新查一遍。
一开始我说的是"更新 JS",后来查了一下才发现,这种说法其实不太准确。平时在 Ubuntu 里真正更新的,主要还是 Node.js 和 npm。因为 JavaScript 本身不是单独安装的,真正跑 JS 的一般是 Node.js 这一套环境。
所以这篇就当作我自己的安装记录,后面直接照着操作就行。
1. 先看当前版本
先确认一下系统里有没有装 Node.js 和 npm:
bash
node -v
npm -v
如果能看到版本号,说明系统里已经有环境了。
如果提示 command not found,那就说明还没装,需要重新安装。
我一般在正式动手之前,都会先看一下当前版本,避免自己都不知道系统里现在到底是个什么状态。
2. 我现在更推荐用 nvm
这次整理下来,我还是觉得 nvm 最省心。
原因也很直接:
- 可以安装多个 Node.js 版本
- 切换版本很方便
- 不容易把系统环境搞乱
- 特别适合本地开发
如果是我自己的 Ubuntu 开发机,我基本都会优先选 nvm,而不是直接用系统自带的软件源去装。
3. 安装 nvm
安装命令如下:
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
装完之后,为了让它在当前终端里立即生效,我执行:
bash
source ~/.bashrc
如果我用的是 zsh,那可能要执行这个:
bash
source ~/.zshrc
然后我会顺手确认一下 nvm 有没有装成功:
bash
nvm --version
能看到版本号就说明没问题。
4. 安装 Node.js
如果我想直接装最新版,可以这样:
bash
nvm install node
nvm use node
nvm alias default node
这里的 node 表示最新版本。
执行完之后,我再检查一下:
bash
node -v
npm -v
这样就能确认 Node.js 和 npm 已经装好了。
5. 如果想求稳,我更倾向于装 LTS
虽然最新版看起来很新,但很多时候其实没必要追最新。
尤其是平时做项目,稳定比新更重要,所以我一般更倾向于装 LTS(长期支持版)。
命令如下:
bash
nvm install --lts
nvm use --lts
nvm alias default lts/*
这套我自己觉得是最省心的方案。
如果没有特殊需求,我以后大概率都会直接用这个。
6. 以后更新 Node.js 怎么做
如果之前已经装好了 nvm,那后面更新就简单很多。
更新到最新版
bash
nvm install node --reinstall-packages-from=node
这个命令的意思大概是:
- 安装最新的 Node.js
- 尽量把旧版本里全局安装过的 npm 包一起带过来
如果我是想更新到新的 LTS 版本,那我一般会这样写:
bash
nvm install --lts --reinstall-packages-from=current
nvm use --lts
nvm alias default lts/*
这样比较顺手,也不用重新装一遍常用的全局工具。
7. 如果不用 nvm,也可以用 apt
如果系统里的 Node.js 是以前通过 apt 装的,那也可以直接这样更新:
bash
sudo apt update
sudo apt upgrade nodejs npm
不过这个方法我现在一般不太优先用了。
原因也很简单:
Ubuntu 自带软件源里的 Node.js 往往比较老。
也就是说,这样虽然方便,但不一定能更新到自己想要的新版本。
如果只是简单维护一下系统,这么做也没问题;但如果我要做前端开发或者跑一些新项目,那我还是更愿意用 nvm。
8. 想用 apt 装新一点的版本,可以用 NodeSource
如果我不想用 nvm,但又想通过 apt 安装一个更新一点的 Node.js,那我会考虑 NodeSource。
安装 LTS 版本的命令如下:
bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
装完之后照样检查版本:
bash
node -v
npm -v
这种方式我觉得更适合服务器,或者那种不太需要频繁切换版本的环境。
9. 如果只是 npm 老了,也可以单独更新
有时候 Node.js 本身没啥问题,只是 npm 比较旧,这种情况也可以单独升级 npm:
bash
npm install -g npm@latest
然后再看一下版本:
bash
npm -v
不过这里也得记一下:
如果 Node.js 版本太老,最新的 npm 可能不一定兼容。
所以真要升级的话,最好还是一起考虑,不要只盯着 npm。
10. 这次折腾完之后,我自己的结论
这次整理完之后,我对 Ubuntu 上 Node.js 环境的安装思路也更明确了。
本地开发环境
我推荐:
- nvm
- LTS 版本
原因就是稳定、干净、切换方便。
服务器环境
我更倾向于:
- NodeSource
- 或者直接装固定版本
因为服务器更强调稳定和可控,不一定需要来回切版本。
尽量不要混着装
这个我觉得非常重要,所以单独记一下。
比如下面这种情况就很容易出问题:
- 一开始用 apt 装了 Node.js
- 后来又用 nvm 装了一套
- 再后面又手动升级了 npm
这样搞几次之后,很容易连自己都搞不清楚系统到底在用哪个 node、哪个 npm。
所以我现在的想法是:
从一开始就选一种方式,然后一直沿用,不要混装。
11. 我以后大概率就按这个流程来
如果以后我要重装 Ubuntu,或者新开一台开发机,我大概率会直接这样做。
第一步:安装 nvm
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
第二步:安装 LTS 版本 Node.js
bash
nvm install --lts
nvm use --lts
nvm alias default lts/*
第三步:检查环境
bash
node -v
npm -v
nvm --version
到这里基本就算搞定了。
12. 最后总结一下
这次所谓的"更新 JS",本质上其实就是更新:
- Node.js
- npm
我自己现在最推荐的方案还是:
bash
nvm + LTS
原因很简单:
- 装起来方便
- 用起来稳定
- 不容易把环境搞乱
- 以后升级也省事