Angular中开发一个代码库

Angular 的复杂项目中,我们可以对其拆分出不同功能模块进行开发,但是对于大型项目,或者我们直接考虑拆成库,将一部分的模块合起来组成一个库,方便复用,比如我们熟悉的各种设计组件库,就是一堆模块的合集。

模块

对业务进行分析后,划分边界,类似于后端微服务,将前端业务聚合拆分成一个个模块,模块内部持有着业务相关的模型,服务和组件。

$ ng g m test

使用 cli 可以直接建立 Angular 模块

库是一个集合,比如组件库,就是一系列组件模块的集合,还有一个逻辑库

$ ng g library test

使用 cli 直接创建 Angular

需要注意的是,不论是模块还是库,都需要在 Angular 项目的内部,所以在进行拆分时,需要额外创建 Angular项目来开发库,开发完成后直接发布,项目中使用npm引入,将库进行打包后发布到npm` 上,或者直接从本地目录进行安装

$ npm i test

$ npm i 文件发布路径

在开发时,我们可以使用watch来进行自动热重载

$ ng b --watch

这样,项目中引入库后,再对库进行修改,实际项目也可以实时重载。

可能出现的问题

在使用本地npm源安装时,我们再库中定义的组件引用时会出现绑定错误的情况,组件也无法正常加载,只需要在项目的 angular.json 文件中,找到 project > project-name > architect > build > options,添加一项 preserveSymlinks: "true"

发布时间:2022-07-18
其他阅读

Js文件上传

文件上传是一个前端比较常见的功能,无论是以前的MVC客户端,还是现代化SPA客户端中,但万变不离其宗,其内核基本不变,本文就此讨论简单文件上传(以图片为例子)。

查看原文

C#完成一个应用内的消息中心

本文会讲解如何使用 C# 完成一个应用内部的消息中心(事件总线),事件驱动最大的好处就是可以很大程度的解耦合,松散结构。

查看原文

Nginx配置反向代理和负载均衡

Nginx是一个流行的Web容器,作为服务的入口,使用反向代理和负载均衡,达到隐藏和保护内部服务安全的作用,本文会描述Nginx反向代理和负载均衡的配置。

查看原文

未来设计趋势-Bento Layout\便当布局

前几天找网站设计的灵感的时候,发现一个介绍2024年网站设计趋势的视频,里面介绍了一个叫 Bento Layout 的趋势,今天就给大家分享一下什么是 Bento Layout,中文称为“便当布局”。

查看原文

Entity Framework Core链接Oracle的问题

最近使用 Entity Framework Core 来链接 Oracle 11g 数据库,发现很多 LINQ 语句使用起来都会有问题,查看日志输出发现是生成SQL语句无法被 11g 版本执行,好在Oracle官方已经给我们提供了解决方案。

查看原文