可以说,Angular是目前最好的JS框架之一! 您现在可能正当地使用它来编写您的Web应用程序和/或以后的Web应用程序(如果不是😱,您应该认真考虑一下)。
后面的社区也非常强大,您可以添加大量库来扩展应用程序(ng-bootstrap,角材料,角火力库等)。
您甚至可能正在考虑自己编写自己的脚本,或者是从头开始编写,或者是通过提取自己创建的共享模块(作为正在使用的大型应用程序的一部分)来实现的。
在这两种情况下,您都会很快发现以正确的方式发布Angular库的过程并不是那么简单。 有太多事情要考虑,例如:
- 内联组件中的外部样式和模板
- 编写和编译您的库,使其与Ahead of Time(AOT)编译兼容
- 分发尽可能小的包装,以减少最终消费者的足迹
- 通过允许自动完成和编译时类型检查,分发与TypeScript配合使用的软件包
- 捆绑您的库,以允许大多数用户通过SystemJS或Webpack使用它
而这样的例子不胜枚举。
也许您已经为上个月发布的那个库完成了所有这些工作。 但是现在,您正在开发一个新的令人敬畏的库。 尽管它与前一个完全不同,但是,周围的构建/测试链完全相同,或者非常接近。 而且您厌倦了从一个项目到另一个项目一遍又一遍地复制/重命名文件。
这就是产生generator-ngx-library的原因 !

它是什么?
generator-ngx-library是一个Yeoman生成器,旨在减轻创建和发布Angular库的痛苦/繁琐过程,以便您真正专注于最重要的事情:编写实际的库!
除了生成最少的代码以使您快速入门之外,它还为您提供了完整的构建和即用型测试设置,并与流行的工具集成在一起以改善您的工作流程,代码质量和维护。
特征
这些是生成器涵盖的一些主要功能:
- 提前 (AOT)编译, 扁平化ES模块 (FESM), [最小化] UMD捆绑包 , 闭包编译器支持(遵循Angular封装格式)
- 基于codelyzer规则的代码整理
- 内联在组件中的样式和模板
- SASS / SCSS到CSS的编译
- 使用angular-cli和ng-bootstrap构建的集成演示应用程序
- 使用compodoc构建并与演示应用程序一起发布的项目文档
- 与Travis CI的持续集成
- 使用Karma和Webpack 测试环境
- Coveralls.io的代码覆盖率
- 使用Greenkeeper 进行npm依赖关系 的实时监控和自动更新
- 发布到npm注册表
- 发布到Github
你看? 该工具确实可以为您处理一切!
如何安装 ?
确保首先安装了先决条件(Yeoman Yo,Gulp CLI和Angular CLI):
$ npm install -g yo gulp-cli @ angular / cli
//或通过 Yarn
$ yarn add global yo gulp-cli @ angular / cli
然后,只需安装生成器:
$ npm install -g generator-ngx-library
//或通过 Yarn
$ yarn add global generator-ngx-library
如何创建您的图书馆?
很简单。 创建您的库的根文件夹,进入其中并运行:
yo ngx图书馆
回答提示您的问题:

这将生成一个包含库的完全git-ready项目,并基于您在初始化期间提供的确切选项和答案。