You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JHipster中本地使用Angular Library时模块找不到问题

问题:JHipster应用中导入编译后的Angular库提示模块找不到

我在JHipster应用里制作可复用登录组件,创建了Angular库login-lib,操作步骤如下:

  • 使用ng generate library login-lib创建库
  • 库中包含组件依赖的必要服务,已在public-api.ts中导出所有相关文件
  • 执行ng build login-lib将编译文件输出到根目录dist\login-lib
  • 在主应用的login.module中导入LoginLibModule,尝试在LoginWrapperComponent模板用jhi-login-lib渲染组件

但出现模块找不到错误:

./src/main/webapp/app/login/login.module.ts:3:0-84 - Error: Module not found: Error: Can't resolve '../../../../../dist/login-lib/lib/login-lib.module' in 'C:\daten\dev\...\...\src\main\webapp\app\login'

直接导入projects\login-lib源码能正常工作,但从dist路径导入就报错,试过调整导入路径、修改angular.json添加脚本、将dist输出到node_modules、发布到npm等方法,问题仍未解决。


解决方案

1. 通过package.json映射本地库依赖

在项目根目录的package.json中,给login-lib添加本地路径依赖:

"dependencies": {
  // 其他已存在的依赖
  "login-lib": "file:./dist/login-lib"
}

执行npm install后,在模块中直接用import { LoginLibModule } from 'login-lib';导入,无需写冗长的相对路径。

2. 配置tsconfig.json路径别名

修改根目录tsconfig.json的compilerOptions.paths,添加库的路径映射:

"compilerOptions": {
  // 其他原有配置
  "paths": {
    "login-lib": ["./dist/login-lib"],
    "login-lib/*": ["./dist/login-lib/*"]
  }
}

配置完成后,导入时直接使用import { LoginLibModule } from 'login-lib';,TypeScript会自动解析到dist目录的编译产物。

3. 确保库编译产物完整

重新执行编译命令并监听文件变化,确认编译过程无报错:

ng build login-lib --watch

检查dist/login-lib目录下是否存在package.json、login-lib.module.d.ts等必要文件。若编译产物缺失,清理缓存后重新编译:

ng clean && ng build login-lib

4. 调整JHipster的Webpack解析配置

JHipster的Webpack配置可能限制了文件查找范围,修改webpack.common.js(对应项目的Webpack配置文件),将dist目录加入模块解析路径:

resolve: {
  // 现有配置
  modules: [
    'node_modules',
    path.resolve(__dirname, 'dist') // 添加此行
  ]
}

5. 验证public-api.ts导出正确性

确保public-api.ts正确导出LoginLibModule及相关内容:

export * from './lib/login-lib.module';
export * from './lib/login-lib.component';
// 按需导出其他服务、指令等

编译后检查dist/login-lib/index.d.ts,确认包含上述导出内容。


内容的提问来源于stack exchange,提问作者yuroni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:32:37