Angular Libraries构建与npm packages发布
Apr 28, 2019
关于
按照官方的说法,Angular Library是一个不同于app的Angular工程,它需要在一个app中被引入使用。开发者可以以Angular Libraries的形式来为特定的场景提供通用的解决方案,从而可以在不同的app中得到重用。
Angular Libraries构建
Angular Libraries不能单独存在,首先需要创建一个app工程
1
ng new ng-cari -p ng-cari
这里的”-p”是指组件的前缀
进入新建的app工程根目录,并创建一个Angular Library工程
1
ng g library @ng-cari/lottie -p ng-cari
这里的”@ng-cari/“是指npm包作用域,Angular CLI会自动修改angular.json,新增名为”@ng-cari/lottie”的工程,并生成对应的Angular Library工程目录,工程目录位于projects/ng-cari/lottie
修改Angular Library代码,并添加依赖项以及其他对应信息
1
2
3
4
5
6
7
8
9
10
11
12{
"name": "@ng-cari/lottie",
"version": "1.0.0",
"author": "Jason Tsang",
"peerDependencies": {
"@angular/common": "^7.2.0",
"@angular/core": "^7.2.0"
},
"dependencies": {
"lottie-web": "^5.5.2"
}
}在app工程根目录下添加Angular Library所需的依赖项
1
npm install -S lottie-web
在app工程根目录下构建Angular Library工程
1
ng build @ng-cari/lottie
修改app工程代码,引入Angular Library工程,并使用对应的组件
1
2
3
4import { LottieModule } from '@ng-cari/lottie';
<ng-cari-lottie [ngStyle]="{'width.px': '256', 'height.px': '256', 'background': 'black'}"
path="assets/lottie/progress.json" progress="20"></ng-cari-lottie>运行app工程查看实际效果
1
ng serve
npm packages发布
1 | //进入构建后的Angular Library工程目录,示例位于dist/ng-cari/lottie |