首页 > 解决方案 > Angular CLI 6:如何在主应用程序中使用库子项目?

问题描述

我有一个 Angular 6 项目,它由一个主应用程序和一个单独的子项目组成,它是一个库。我正在尝试从主应用程序中使用这个库,但我似乎无法让它工作。

在 中tsconfig.json,我有以下paths配置:

"paths": {
  "@my-company/my-package/*": "dist/my-package/*"
}

然后在主应用程序中,我像这样导入库:

import { ButtonModule } from '@my-company/my-package/button';

但是,当我构建主应用程序时,我收到大量关于无法找到模块的错误。对于上面的 import 语句,我会得到这个错误:

Module not found: Error: Can't resolve '/Users/jattardi/code/myproject/dist/my-package/button'

但是,如果我检查dist/my-package目录,肯定有一个button包含类型定义的目录。

我的导入有子路径的原因,例如,@my-company/my-package/button而不是仅仅@my-company/my-package为了使其可摇树。不确定这是可能的。由于这是 Angular 6/ng-packagr 生成的构建,我会失去这种能力吗?

标签: javascriptangulartypescriptangular6

解决方案


尝试在主应用程序中使用时,我遇到了同样的错误。我的回答不会解决这种情况,因为我试图让我的延迟加载模块,我搬到新的 Angular6 库中工作。

我能够将我的库项目发布到 npm 并在主应用程序中作为 npm 依赖项使用它。例如:@santony/ngx-material。可能是一种解决方法,您可以这样做,直到解决此问题。


推荐阅读