详解如何为你的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 相关文章推荐
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
TypeError document.getElementById(...) is null错误原因
May 18 Javascript
基于JavaScript实现生成名片、链接等二维码
Sep 20 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
Aug 25 Javascript
jQuery事件_动力节点Java学院整理
Jul 05 jQuery
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
原生js通过一行代码实现简易轮播图
Jun 05 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
Nov 01 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
python操作CouchDB的方法
2014/10/08 Python
Python中random模块用法实例分析
2015/05/19 Python
pytorch构建多模型实例
2020/01/15 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
python如何爬取动态网站
2020/09/09 Python
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
超市中秋节活动方案
2014/02/12 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
Golang jwt身份认证
2022/04/20 Golang