详解如何为你的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日历算法详细代码
Mar 07 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
jsTree使用记录实例
Dec 01 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
JS实现课堂随机点名和顺序点名
Mar 09 Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
微信小程序scroll-view实现字幕滚动
Jul 14 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
Jun 21 Javascript
vue实现标签云效果的方法详解
Aug 28 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+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php中序列化与反序列化详解
2017/02/13 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
JS启动应用程序的一个简单例子
2008/05/11 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
出纳岗位职责
2013/11/09 职场文书
医护人员英文求职信范文
2013/11/26 职场文书
教师演讲稿范文
2014/01/08 职场文书
项目开发计划书
2014/01/09 职场文书
向领导表决心的话
2014/03/11 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
诚信承诺书
2015/01/19 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python