Node.js 安装配置
以下是关于在 Windows、macOS 和 Linux 系统上安装和配置 Node.js 的中文讲解,内容简洁清晰,适合初学者。
1. 什么是 Node.js?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,允许在服务器端运行 JavaScript。它广泛用于构建高效、可扩展的网络应用程序。
2. 安装 Node.js
Windows
- 下载安装包:
- 访问 Node.js 官网(https://nodejs.org/)。
- 推荐下载 LTS(长期支持版),适合大多数用户,点击“下载”按钮获取
.msi
文件。
- 安装步骤:
- 双击下载的
.msi
文件,启动安装向导。 - 按提示点击“Next”,接受许可协议。
- 选择安装路径(默认即可),确保勾选“Add to PATH”选项,方便命令行使用。
- 点击“Install”完成安装。
- 验证安装:
- 打开命令提示符(Win+R,输入
cmd
)。 - 输入以下命令检查版本:
bash node -v npm -v
输出类似v20.x.x
(Node.js 版本)和10.x.x
(npm 版本)表示安装成功。
macOS
- 下载安装包:
- 访问 Node.js 官网(https://nodejs.org/)。
- 下载 macOS 的
.pkg
文件(选择 LTS 版)。
- 安装步骤:
- 双击
.pkg
文件,按照安装向导操作。 - 接受许可协议,点击“继续”完成安装。
- 验证安装:
- 打开终端(Terminal)。
- 输入以下命令:
bash node -v npm -v
确认版本号显示正确。
Linux(以 Ubuntu 为例)
- 使用包管理器安装:
- 打开终端,运行以下命令添加 NodeSource 仓库(以 Node.js 20.x 为例):
bash curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
- 安装 Node.js 和 npm:
bash sudo apt update sudo apt install -y nodejs
- 验证安装:
- 输入以下命令:
bash node -v npm -v
确认版本号正确。
3. 配置 Node.js 环境
设置 npm 全局安装路径
默认情况下,npm 全局安装的模块会存储在用户目录下,可能因权限问题导致安装失败。可以自定义全局安装路径:
- 创建全局模块目录:
- Windows:
bash mkdir %USERPROFILE%\npm-global
- macOS/Linux:
bash mkdir ~/.npm-global
- 配置 npm:
- 运行以下命令设置全局路径:
bash npm config set prefix "~/.npm-global"
- 添加环境变量:
- Windows:在“系统属性”→“环境变量”中,将
%USERPROFILE%\npm-global\bin
添加到 PATH。 - macOS/Linux:编辑
~/.bashrc
或~/.zshrc
,添加:bash export PATH=~/.npm-global/bin:$PATH
- 应用更改:
bash source ~/.bashrc
配置 npm 镜像(加速下载)
中国用户可使用淘宝 npm 镜像以提高下载速度:
npm config set registry https://registry.npmmirror.com
验证镜像:
npm config get registry
4. 运行简单的 Node.js 程序
- 创建一个文件
app.js
:
console.log("Hello, Node.js!");
- 在终端运行:
node app.js
输出 Hello, Node.js!
表示成功。
5. 常见问题
- 命令未找到:确保 Node.js 和 npm 已添加到系统 PATH。
- 权限问题:Linux/macOS 用户可使用
sudo
或调整全局安装路径。 - 版本管理:推荐使用
nvm
(Node Version Manager)管理多个 Node.js 版本: - 安装 nvm(参考:https://github.com/nvm-sh/nvm)。
- 切换版本:
bash nvm install 20 nvm use 20
6. 下一步
- 学习 npm 常用命令(如
npm install
、npm start
)。 - 尝试使用框架(如 Express)构建 Web 应用。
- 参考 Node.js 官方文档(https://nodejs.org/en/docs/)深入学习。
如果有其他问题,请告诉我!