Angular库构建指南:使用ng-lib-schematics
1. 项目目录结构及介绍
当您使用ng-lib-schematics
创建一个Angular库时,它将遵循Angular的标准项目结构,并可能自动生成以下核心部分:
- src: 主要源码存放目录。
lib
: 具体库组件、指令或服务的源代码所在文件夹。public_api.ts
: 导出库的所有公共API的文件,用于外部访问库的功能。
- projects: 在现有Angular项目中创建库时,新的库项目将会被放置在这里。
- karma.conf.js: 测试配置文件,用于单元测试。
- tsconfig.lib.json: 库编译的TypeScript配置文件。
- package.json: 包含项目元数据,依赖项以及脚本命令。
2. 项目的启动文件介绍
在通过ng-lib-schematics
创建的库项目中,并没有传统意义上的“启动”文件,因为库本身不直接运行,而是作为其他Angular应用的一部分被导入使用。然而,有以下几个关键文件是开发过程中常常需要关注的:
-
package.json: 这个文件包含了npm脚本,如构建和测试命令,还有库的版本信息和依赖项列表。使用这个文件中的脚本可以进行库的构建、发布准备等操作。
-
src/public_api.ts: 虽不是启动文件,但至关重要,因为它决定了哪些库功能对外可访问。当你想要导出库中的类、接口或任何其他类型时,你会在这个文件中做export声明。
3. 项目的配置文件介绍
-
tsconfig.json: TypeScript配置文件,定义了TypeScript编译器选项,适用于整个项目。包括目标ES版本、模块系统、源代码目录等。
-
tsconfig.lib.json: 特定于库的TypeScript配置文件,确保库按Angular库的标准进行编译,生成UMD、ES2015等不同格式的包以适应多种环境需求。
-
.angular.json (如果有): Angular工作区配置文件,包含项目设置,比如构建目标、样式预处理器的选择等。虽然主要面向应用,但包含的库项目信息也在此处配置。
-
karma.conf.js: 自动化测试框架Karma的配置文件,用于设定测试运行器的行为,例如哪一些文件会被测试、使用哪些测试框架(如Jasmine)等。
-
gulpfile.js (如果项目中有): Gulp任务管理工具的配置文件,用于自动化构建流程,虽然这不是ng-lib-schematics生成的标准部分,但在一些项目中可能会用来自定义构建过程。
通过上述结构和配置文件的理解,开发者能够有效地管理和构建自己的Angular库,确保其符合Angular最佳实践和发布标准。