运行gulp serve报primordials未定义且nvm切换Node版本失败如何解决
问题原因说明
1. gulp执行报错ReferenceError: primordials is not defined
该错误是版本不兼容导致:你运行的SPFx web part项目依赖3.x版本的gulp,而gulp 3.x仅支持Node.js 12及以下版本,你当前使用的Node 17版本过高,Node 12+版本已移除内部原生API primordials,因此触发该报错。
2. nvm切换版本报错exit status 145: The directory is not empty
该错误是Windows系统下nvm的常见异常,触发原因包括:
- 当前有正在运行的Node.js相关进程占用了Node默认安装目录,导致nvm无法修改目录软链接
- 你没有使用管理员权限运行终端,nvm没有权限修改系统目录
- 之前直接安装的Node.js残留文件未清理,默认Node安装目录(
C:\Program Files\nodejs)非空,nvm无法覆盖创建软链接
解决步骤
第一步:修复nvm版本切换问题
- 打开任务管理器,结束所有运行中的
node.exe、npm.exe相关进程,关闭所有打开的代码编辑器、终端窗口 - 右键点击CMD/PowerShell,选择以管理员身份运行
- 若仍报错,手动删除
C:\Program Files\nodejs目录(可提前备份目录内的全局npm包配置) - 执行切换命令:
nvm use 16.13.0,执行完成后运行node -v确认版本切换成功
第二步:修复gulp运行报错
- 进入项目根目录,删除已有的
node_modules文件夹和package-lock.json文件 - 执行
npm install重新安装所有项目依赖 - 执行
gulp serve即可正常启动本地调试服务
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

