详解如何为你的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 避免闭包引发的问题
Mar 17 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 Javascript
JS中showModalDialog 的使用解析
Apr 17 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
js调用后台、后台调用前台等方法总结
Apr 17 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
微信小程序云开发之云函数详解
May 16 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
开发Node CLI构建微信小程序脚手架的示例
Mar 27 Javascript
ES6箭头函数和扩展实例分析
May 23 Javascript
小程序实现背景音乐播放和暂停
Jun 19 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
PHP如何使用Memcached
2016/04/05 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
php生成word并下载代码实例
2019/03/15 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
python实现RSA加密(解密)算法
2016/02/17 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python实现五子棋程序
2020/04/24 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
2015元旦联欢晚会结束语
2014/12/14 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers