Skip to content

npm install 遇到 'Unexpected token' 错误的解决方案

问题描述

当运行 npm install -g @angular/cli 或其他 npm 命令时,可能会遇到以下错误:

npm ERR! Unexpected token '.'
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\<user>\AppData\Local\npm-cache\_logs\2022-02-02T15_25_07_320Z-debug-0.log

此错误通常发生在 Windows 系统上,特别是使用 Node Version Manager (NVM) 管理 Node.js 版本的情况下。

根本原因

这个错误主要是由于:

  1. npm 8.3.1 版本的已知问题 - 这个特定版本存在解析错误
  2. Node.js 版本兼容性问题 - 某些 Node.js 版本与 Angular CLI 不完全兼容
  3. NVM 版本过旧 - Windows 版 NVM 的旧版本存在兼容性问题

解决方案

方法一:更新 NVM(Windows 用户)

重要提示

如果你使用 Windows 系统并且通过 NVM 管理 Node.js,这可能是最有效的解决方案。

  1. 访问 NVM for Windows 发布页面
  2. 下载最新版本的 nvm-setup.zip
  3. 运行安装程序覆盖现有安装
  4. 重新安装当前使用的 Node.js 版本:
bash
nvm uninstall <当前版本>
nvm install <当前版本>
nvm use <当前版本>

方法二:使用兼容的 Node.js 版本

某些 Node.js 版本(特别是 16.14.0 及以上)与 npm 8.3.1 存在兼容性问题。

bash
# 安装兼容版本
nvm install 16.13.2
nvm use 16.13.2

# 验证版本
node -v  # 应该显示 v16.13.2
npm -v   # 应该显示 8.1.2
bash
# 从 Node.js 官网下载并安装 16.13.2 版本
# 访问:https://nodejs.org/en/download/releases/
bash
# 使用 Chocolatey 重新安装
choco uninstall nvm
choco install nvm
nvm install latest
nvm use [latest] # 替换为实际版本号

方法三:更新 npm 版本

如果已经使用了兼容的 Node.js 版本,可以尝试更新 npm:

bash
# 首先确保 Node.js 版本兼容
npm install -g npm@latest

方法四:使用 Yarn 作为替代

在某些情况下,使用 Yarn 包管理器可以绕过这个问题:

bash
# 安装 Yarn
npm install -g yarn

# 使用 Yarn 安装 Angular CLI
yarn global add @angular/cli

验证解决方案

成功解决问题后,应该能够正常运行 npm 命令:

bash
# 验证安装
npm install -g @angular/cli

# 检查版本
ng version

预防措施

  1. 定期更新 NVM - 确保使用最新版本的 Node Version Manager
  2. 检查版本兼容性 - 在安装新版本的 Node.js 前,查看 Angular 官方文档的兼容性要求
  3. 使用版本锁定 - 在项目中指定 Node.js 和 npm 的版本要求

版本兼容性参考

  • Angular 16+ 需要 Node.js 16 或 18 版本
  • 推荐使用 Node.js LTS(长期支持)版本以获得最佳稳定性
  • 始终检查 Angular 官方文档获取最新兼容性信息

总结

Unexpected token '.' 错误通常是由 npm 版本问题或 Node.js 版本不兼容引起的。通过更新 NVM、使用兼容的 Node.js 版本或更新 npm,大多数情况下可以解决这个问题。如果问题持续存在,考虑使用 Yarn 作为临时替代方案。