Node.js 安装与环境变量配置指南
在 Windows 上开发 Node.js 应用,第一步是搭建好运行环境。下面以 Windows 为例,梳理从下载安装到环境变量配置的完整流程,顺便解决几个常见的坑。
下载安装包
访问 Node.js 官网下载页面,选择适合你系统的版本。
如果需要旧版本,可以在页面找到'历史版本'入口。

点击 Windows 安装包(.msi) 进行下载。

安装程序
双击下载的 .msi 文件开始安装。
- 一路点击 Next。
- 到了选择安装位置这一步:建议不要装在 C 盘(选 D/E 盘即可),且目录中不要包含中文、空格以及特殊字符。

- 后续步骤保持默认即可。


- 点击 Install 开始安装。

- 验证是否安装成功。
点击 Finish 完成安装后,按 Win + R,输入 cmd 回车。输入 node -v 和 npm -v 查看版本号。

能看到版本号,说明基础安装没问题。
环境配置
虽然安装时会自动配置一部分,但为了规范化管理,建议手动设置 npm 的全局目录和缓存路径。
新建两个文件夹
进入这两个文件夹,复制它们的'文件夹地址'(后面要用)。

打开你的 Node.js 安装目录,新建两个文件夹:node_cache、node_global。

设置 npm 的全局目录和缓存
按 Win + X,选择 终端(管理员),分别执行下面两条命令(把路径换成你自己的)。
npm config set prefix "D:\Deleloper\runtimes\NodeJS\node_global"
npm config set cache "D:\Deleloper\runtimes\NodeJS\node_cache"
注意:一定要用'管理员'打开终端,否则可能失败。
这里解释一下:prefix 设置 npm 全局安装包的存放目录,当使用 npm install -g package-name 安装全局包的时候,会默认安装到此目录,从而统一管理 Node.js 相关文件。cache 设置 npm 下载缓存的存放目录,将下载的包先缓存到这里,下次安装同版本时直接使用缓存,从而节省空间,加快安装速度。
检查是否设置成功(复制粘贴执行):
npm config get prefix
npm config get cache
显示的是你自己的文件夹地址,就说明对了。

配环境变量
- 右键'此电脑' -> '属性' -> '高级系统设置' -> '环境变量'。

- 点击'新建',创建系统变量
NODE_PATH。
变量值:node_global 文件夹的路径 + \node_modules。

- 在'用户变量'里编辑
Path。
把默认的 ...AppData\Roaming\npm 改成你的 node_global 路径。


- 在'系统变量'里选择
Path-> '编辑' -> '新建' -> 输入:%NODE_PATH%。
一路点'确定'保存,关闭所有窗口后,重新打开 终端/命令行(这一步很关键)。

测试配置
按 Win + X,选择 终端(管理员),执行下面命令(安装一个全局包做验证):
npm install express -g
看到安装成功的输出,就说明配置成功。

设置 npm 国内镜像
如果你发现 npm install 很慢,再做这一步:
- 按 Win + X,选择 终端(管理员),执行:
npm config set registry https://registry.npmmirror.com
- 验证:
npm config get registry
显示 https://registry.npmmirror.com 就成功。
常见问题
后续会基于新的问题不断添加。
权限不足 (EPERM)
在使用的时候报错较多,显示 EPERM 错误,这个错误通常是因为文件/文件夹权限问题导致的,错误示例如下:

解决方案: 键盘【Win+X】,打开终端管理员,重新尝试。如果不行,需要修改 Node.js 安装目录权限,修改 npm 缓存目录权限,仍旧在终端管理员执行下述命令。
# 修改 Node.js 安装目录权限
icacls "你的 Node.js 安装目录" /grant Users:F /T
# 修改 npm 缓存目录权限
icacls "你的 node_global 目录" /grant Users:F /T
icacls "你的 node_cache 目录" /grant Users:F /T
可以通过以下指令,获取你对应的目录:
npm config get prefix
npm config get cache
示例如下:
icacls "D:\Deleloper\runtimes\NodeJS" /grant Users:F /T
icacls "D:\Deleloper\runtimes\NodeJS\node_global" /grant Users:F /T
icacls "D:\Deleloper\runtimes\NodeJS\node_cache" /grant Users:F /T


