使用yo angular-js生成Angular Widget时出现instantiatedGenerator.run错误
解决generator-liferay-js运行时"instantiatedGenerator.run is not a function"错误
环境信息
- 当前使用环境:
- liferay-ce-portal-7.4.3.14-ga14
- nodejs v20.11.0
- npm 10.4.0
- yo v5.0.0
- generator-liferay-js@2.31.2
- 曾尝试环境:
- nodejs v18.17.1
- npm 6.14.12
问题描述
按照官方文档操作创建Liferay Portal UI时,执行Yeoman生成器命令后出现错误:instantiatedGenerator.run is not a function,安装步骤截图如下:
修复方案
1. 降级Yeoman版本
Yeoman v5.x与generator-liferay-js@2.31.2存在兼容性问题,降级到v4.x稳定版:
npm uninstall -g yo npm install -g yo@4.3.1
重新运行yo liferay-js尝试创建项目。
2. 切换至官方推荐的Node.js版本
Liferay JS Toolkit对Node.js v20.x的兼容性支持有限,建议使用v16.x或v18.x的LTS版本,可通过nvm管理版本:
# 安装并切换到Node.js 16.20.2(LTS版本) nvm install 16.20.2 nvm use 16.20.2 # 重新全局安装依赖 npm uninstall -g yo generator-liferay-js npm install -g yo generator-liferay-js
3. 清理缓存后重装依赖
可能存在缓存损坏导致的安装异常,清理后重新安装:
npm cache clean --force npm uninstall -g yo generator-liferay-js npm install -g yo generator-liferay-js
4. 改用Liferay CLI创建项目
避免Yeoman版本冲突,使用官方Liferay CLI工具:
npm install -g @liferay/cli liferay init
内容的提问来源于stack exchange,提问作者Mo Kham
相关产品推荐
相关产品推荐

