JHipster微前端模块解析失败:网关部署报错求助
JHipster微前端网关部署时模块找不到的解决方案
错误信息
[INFO] ./src/main/webapp/app/app-routing.module.ts:28:36-76 - Error: Module not found: Error: Can't resolve 'geonamesservice/entity-routing' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app' [INFO] [INFO] ./src/main/webapp/app/app-routing.module.ts:32:36-75 - Error: Module not found: Error: Can't resolve 'tajvoteservice/entity-routing' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app' [INFO] [INFO] ./src/main/webapp/app/app-routing.module.ts:36:36-81 - Error: Module not found: Error: Can't resolve 'organizationsservice/entity-routing' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app' [INFO] [INFO] ./src/main/webapp/app/app-routing.module.ts:40:36-89 - Error: Module not found: Error: Can't resolve 'saathratrimaintenanceservice/entity-routing' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:585:6-51 - Error: Module not found: Error: Can't resolve 'geonamesservice/entity-navbar-items' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:592:20-64 - Error: Module not found: Error: Can't resolve 'geonamesservice/translation-module' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:604:6-50 - Error: Module not found: Error: Can't resolve 'tajvoteservice/entity-navbar-items' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:611:20-63 - Error: Module not found: Error: Can't resolve 'tajvoteservice/translation-module' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:623:6-56 - Error: Module not found: Error: Can't resolve 'organizationsservice/entity-navbar-items' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:630:20-69 - Error: Module not found: Error: Can't resolve 'organizationsservice/translation-module' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:642:6-64 - Error: Module not found: Error: Can't resolve 'saathratrimaintenanceservice/entity-navbar-items' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar' [INFO] [INFO] ./src/main/webapp/app/layouts/navbar/navbar.component.ts:649:20-77 - Error: Module not found: Error: Can't resolve 'saathratrimaintenanceservice/translation-module' in '/Users/amar/workspace/saathratri-app-holder/saathratrigateway/src/main/webapp/app/layouts/navbar'
解决方案步骤
1. 构建并链接所有微服务模块
- 进入每个微服务(geonamesservice、tajvoteservice等)的根目录,依次执行:
npm install npm run build - 若使用Yarn Workspaces或Lerna,执行根目录下的依赖安装命令:
yarn install # 或 lerna bootstrap
2. 配置网关的模块路径映射
- Webpack环境:修改网关的
webpack.config.js,在resolve.alias中添加模块路径映射:const path = require('path'); module.exports = { // ...其他配置 resolve: { alias: { 'geonamesservice': path.resolve(__dirname, '../geonamesservice/dist'), 'tajvoteservice': path.resolve(__dirname, '../tajvoteservice/dist'), 'organizationsservice': path.resolve(__dirname, '../organizationsservice/dist'), 'saathratrimaintenanceservice': path.resolve(__dirname, '../saathratrimaintenanceservice/dist'), } } }; - Angular环境:修改网关的
tsconfig.json,在paths字段中配置映射:"compilerOptions": { // ...其他配置 "paths": { "geonamesservice/*": ["../geonamesservice/dist/*"], "tajvoteservice/*": ["../tajvoteservice/dist/*"], "organizationsservice/*": ["../organizationsservice/dist/*"], "saathratrimaintenanceservice/*": ["../saathratrimaintenanceservice/dist/*"] } }
3. 清理缓存并重新构建网关
- 清理依赖和缓存文件:
rm -rf node_modules rm package-lock.json # 或 yarn.lock npm cache clean --force npm install - 重新构建网关:
npm run build
4. 检查模块命名一致性
- 核对网关代码中引用的模块名(如
geonamesservice)与实际微服务的包名、构建输出的模块名是否完全一致,注意大小写和拼写错误。
5. 重新生成网关关联配置
- 重新运行JHipster网关生成命令,确保关联所有微服务:
jhipster gateway --with-entities - 检查网关根目录下的
.yo-rc.json文件,确认已包含所有关联微服务的配置信息。
内容的提问来源于stack exchange,提问作者Amar Premsaran Patel
相关产品推荐
相关产品推荐

