详解如何为你的angular app构建一个第三方库


Posted in Javascript onDecember 07, 2018

Angular 团队 在 angular6 中,使得创建 Angular 第三方库变得更为简单。如果你以前尝试过操作,你会发现其实不是很简单!

那么流程是什么呢?

首页我们构建一个搭建一个简单的环境,环境里面包含一些组件和服务以及一些接口。

创建项目

1.按照官方教程,使用 ng new 命令初始化项目:

ng new lib-demo --prefix ld

在 angular-cli 第6个之后版本。配置文件的方式发生了相当大变化, angular.json 现在代表 angular 工作空间,

详解如何为你的angular app构建一个第三方库

你可以可以使用 ng generate application [my-app-name] 命令添加更多项目

你也可以通过 ng generate 指令创建一个公共库。

ng generate library tvmaze --prefix tm

当然你可以使用简写命令

ng g lib tvmaze --prefix tm

具体参照

使用 generate 在我们 angular.json 中添加一个项目。

详解如何为你的angular app构建一个第三方库

在库中创建一个服务

我们会发现tvmaze有它自己的 package.jsontsconfig.jsontslint.jsonkarma.conf.js ,这样建立是有原因的,因为这个项目独立与主应用建立而成,它本身也有组件、服务、模块。稍后我们添加其他的内容。现在我们添加一些逻辑:

详解如何为你的angular app构建一个第三方库

这里说明下 provideIn: rootangular6 之后的新属性,详情见官网;如果是为了打包优化。

在库中创建一个组件

我们使用 angular-cli 来创建一个组件

# 使用--project 指定创建在那个工程中
ng generate component poster --project=tvmaze

然后这样编辑

详解如何为你的angular app构建一个第三方库

将组件注册到 TvmazeModule 中,并且 exports 中是的外部能够访问,还得添加 CommonModule , HttpClientModule 两个模块。

详解如何为你的angular app构建一个第三方库

构建一下

在我们使用之前,我们先构建一下,我们 ng build 构建,指定项目。

ng build tvmaze

使用库

接下来,我们来使用刚刚构建好的库,一般我们采用第三方库都是使用 import 来导入。

详解如何为你的angular app构建一个第三方库

我们会发现库不存在。因为这种方式,它是从 node_modules 寻找,所以我们要在根目录下 tsconfig.json 添加 paths

详解如何为你的angular app构建一个第三方库

接下来我们在主项目中运用:使用 <tm-poster> 标签,即可完成

详解如何为你的angular app构建一个第三方库

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 文件传参及处理技巧分析
May 13 Javascript
将字符串中由空格隔开的每个单词首字母大写
Apr 06 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
Aug 06 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
浅析java线程中断的办法
Jul 29 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
Sep 10 Javascript
angularJs中ng-model-options设置数据同步的方法
Sep 30 Javascript
Javascript通过控制类名更改样式
May 24 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
Jan 19 Javascript
详解Vue router路由
Nov 20 Vue.js
JS实现随机生成10个手机号的方法示例
Dec 07 #Javascript
angular学习之动态创建表单的方法
Dec 07 #Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 #Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 #Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 #Javascript
详解在create-react-app使用less与antd按需加载
Dec 06 #Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
Dec 06 #Javascript
You might like
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
php随机输出名人名言的代码
2012/10/07 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
python读写json文件的简单实现
2017/04/11 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
自荐信需注意事项
2014/01/25 职场文书
房地产广告词大全
2014/03/19 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
比赛口号大全
2014/06/10 职场文书
音乐教师个人总结
2015/02/06 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
python基础之停用词过滤详解
2021/04/21 Python