使用nvm运行JHipster v7.9.3时出现Cannot find module 'fs/promises'错误求助
问题原因与解决方法
原因分析
fs/promises是Node.js v14.0.0才正式引入的内置模块写法,你的Node.js v12.22.12不支持该语法,只能通过require('fs').promises调用Promise风格的fs API。- 未使用NVM时正常,是因为系统全局安装的Node.js版本高于v14,支持
fs/promises。 - JHipster v7.9.3的官方兼容版本为Node.js 14/16/18,v12不在官方支持范围内,出现兼容性问题属于预期情况。
解决方法
方案一:升级Node.js版本(推荐)
使用NVM安装并切换到兼容的Node.js版本(如v16):
# 安装Node.js 16 nvm install 16 # 切换到该版本 nvm use 16 # 可选:设置为默认版本,下次终端启动自动使用 nvm alias default 16
切换完成后,重新安装JHipster确保兼容性:
npm install -g generator-jhipster@7.9.3
方案二:临时修改代码兼容(不推荐)
如果必须使用Node.js v12,可修改报错文件的代码:
- 打开文件
/Users/xxxx/.nvm/versions/node/v12.22.12/lib/node_modules/generator-jhipster/generators/bootstrap/index.js - 找到第29行,将
require('fs/promises')替换为require('fs').promises - 保存后重新运行JHipster
注意:此方法只是临时修复,重新安装JHipster后修改会失效,且Node.js v12已停止维护,存在安全风险,不建议长期使用。
内容的提问来源于stack exchange,提问作者pastapareo
相关产品推荐
相关产品推荐

