javascript - 如何在库中使用 Angular 应用程序库
问题描述
我有一个带有定义服务的角度应用程序。而且我还定义了几个库。我不能做的是在我的一个库中使用应用程序服务。
- 源代码
- 应用程序
- 服务
- myappservice.service.ts
- 服务
- 应用程序
- 项目
- 我的库
- 源代码
- 库
- mylibservice.service.ts
- 库
- 源代码
- 我的库
当我尝试将“myappservice”导入“mylibservice”时,它给了我这个错误:
... is not under 'rootDir' .... 'rootDir' is expected to contain all source files.
mylibservice.service.ts
import { MyAppService} from 'src/app/services/myappservice.service';
@Injectable({
providedIn: "root",
})
export class ObjectTypesService {
...
constructor(
private myappservice: MyAppService
) {
...
有人可以帮助我在我的图书馆中使用这项服务吗?
解决方案
您可以构建您的 lib 模块,将其发布到 npm 并通过 npm 将其添加到 package.json 中。
您可以构建您的 lib 模块,而不是将其发布到 npm,您可以在 package.json 中导入 .tgz 文件。
您可以使用一些已经解决此问题的 monorepo,例如https://nx.dev/。在此解决方案中,您将所有库和应用程序存储在同一个 git 存储库中,您可以将库导入应用程序,而无需在每次更改后将其发布到 npm。这有不利的一面,因为您必须每次都构建应用程序和所有库。
是否也可以在这个 monorepo 中构建 lib 作为 npm 包。如果您需要在 monorepo 之外的其他应用程序或来自 monorepo 的应用程序中使用它作为 npm 依赖项。
推荐阅读
- php - 将数据发送到 $this->codeigniter 4 中的包含视图
- python-3.x - 在子类 QFontDialog 中获取选定的字体
- python - 烧瓶 + Gevent,monkey.patch_all() 打破烧瓶
- c++ - 具有任意构造函数参数的 C++ 完美通用抽象工厂
- ansible - Tower:是什么原因导致“[警告]:在组名中发现无效字符但未替换,使用 -vvvv 查看详细信息”
- java - 使用 BigInteger 的斐波那契数列不产生答案
- javascript - 如何将今天的日期与javascript中的另一个日期进行比较?
- javascript - BullMQ 使用 IIFE 从文件启动作业
- c# - iText7如何设置现有PDF文档的边距并保存新创建的文件?
- asynchronous - 使用 Tokio 固定异步 Fn 对象时遇到问题