详解如何为你的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 相关文章推荐
Javascript 写的简单进度条控件
Jan 22 Javascript
关于js类的定义
Jun 28 Javascript
解析javascript 实用函数的使用详解
May 10 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
前端jquery部分很精彩
May 03 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
Mar 09 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
May 03 Javascript
JS高级技巧(简洁版)
Jul 29 Javascript
原生js实现随机点餐效果
Dec 10 Javascript
JS PHP字符串截取函数实现原理解析
Aug 29 Javascript
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
PHP初学者头疼问题总结
2006/10/09 PHP
PHP 文件缓存的性能测试
2010/04/25 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
node thread.sleep实现示例
2018/06/20 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Python装饰器原理与简单用法实例分析
2018/04/29 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
理工大学毕业生自荐信范文
2014/02/22 职场文书
网站创业计划书
2014/04/30 职场文书
六一亲子活动总结
2014/07/01 职场文书
2014年副班长工作总结
2014/12/10 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
MySQL分区表实现按月份归类
2021/11/01 MySQL
解决Redis启动警告问题
2022/02/24 Redis
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL