macOS环境下jhipster生成应用报editions-autoloader-invalid-engines错误
本地开发环境配置
- 操作系统:macOS Big Sur 11.2.3
- Java版本:14.0.1(2020-04-14发布)
- Node版本:v16.1.0
- Git版本:2.24.3(Apple Git-128)
- Maven详细配置:
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec Java version: 14.0.1, vendor: N/A, runtime: /usr/local/Cellar/openjdk/14.0.1/libexec/openjdk.jdk/Contents/Home Default locale: en_IN, platform encoding: UTF-8 OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"
已执行操作
通过全局命令sudo npm install -g generator-jhipster完成Jhipster安装,安装过程无异常报错。
运行触发的异常
在新建项目目录下执行jhipster命令生成应用时,抛出如下错误:
Error: editions-autoloader-invalid-engines: The edition had no engines to compare against the environment at new Errlop (/usr/local/lib/node_modules/generator-jhipster/node_modules/errlop/edition-es5/index.js:61:18) at Object.errtion (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/util.js:23:14) at isCompatibleEngines (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:183:19) at isCompatibleEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:250:10) at determineEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:287:4) at determineEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:312:12) at solicitEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:350:16) at Object.requirePackage (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:364:9) at Object.<anonymous> (/usr/local/lib/node_modules/generator-jhipster/node_modules/istextorbinary/index.cjs:4:38) at Module._compile (node:internal/modules/cjs/loader:1109:14) { klass: [Function: Errlop] { create: [Function (anonymous)], isErrlop: [Function (anonymous)], ensure: [Function (anonymous)] }, parent: undefined, ancestors: [], orphanStack: 'Error: editions-autoloader-invalid-engines: The edition had no engines to compare against the environment\n' + ' at new Errlop (/usr/local/lib/node_modules/generator-jhipster/node_modules/errlop/edition-es5/index.js:61:18)\n' + ' at Object.errtion (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/util.js:23:14)\n' + ' at isCompatibleEngines (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:183:19)\n' + ' at isCompatibleEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:250:10)\n' + ' at determineEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:287:4)\n' + ' at determineEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:312:12)\n' + ' at solicitEdition (/usr/local/lib/node_modules/generator-jhipster/node_modules/editions/edition-es5/index.js:350:16)\n' + ' at Object.requirePackage (/usr/local/lib/node_modules/generator-jhipster/node_modules/istextorbinary/index.cjs:4:38)\n' + ' at Module._compile (node:internal/modules/cjs/loader:1109:14)', code: 'editions-autoloader-invalid-engines' }
排查与解决指引
- 报错本质:错误码
editions-autoloader-invalid-engines来自Jhipster依赖树中的editions模块,该模块用于自动匹配不同Node版本的兼容代码包。当前错误是Node版本与已安装的Jhipster依赖树版本不匹配,导致自动加载器无法读取模块的引擎版本声明,直接中断运行流程。 - 版本适配判断:当前运行环境Node版本为v16.1.0,若直接安装最新版Jhipster,其依赖树往往要求Node 18+运行环境,必然触发上述校验错误。
- 标准化解决步骤:
- 卸载当前全局安装的不兼容Jhipster版本,执行命令
sudo npm uninstall -g generator-jhipster - 清理npm全局缓存,避免缓存中的旧依赖残留,执行命令
sudo npm cache clean --force - 安装明确兼容Node16的Jhipster稳定版本,执行命令
sudo npm install -g generator-jhipster@7.9.3,该版本为官方长期维护、对Node16全兼容的发布版本 - 安装完成后,重新在目标项目目录下执行
jhipster命令,验证应用生成流程是否正常
- 卸载当前全局安装的不兼容Jhipster版本,执行命令
- 异常兜底处理:若完成上述步骤后仍报相同错误,可定位到全局node模块路径下,单独重装依赖树中
istextorbinary的兼容版本,消除editions自动加载器的校验逻辑异常。
内容的提问来源于stack exchange,提问作者Madasu K
相关产品推荐
相关产品推荐

