详解如何为你的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代码复用模式实例分析
Dec 02 Javascript
js中replace的用法总结
Dec 27 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
Jul 31 Javascript
jQuery Validate插件实现表单验证
Aug 19 Javascript
简单理解vue中Props属性
Oct 27 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
使用veloticy-ui生成文字动画效果
Feb 08 Javascript
微信小程序按钮去除边框线分享页面功能
Aug 27 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
vue 导航守卫和axios拦截器有哪些区别
Dec 19 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
php入门小知识
2008/03/24 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
nginx 设置多个站跨域
2021/03/09 Servers
javascript 内存回收机制理解
2011/01/17 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python如何读取文件中图片格式
2020/01/13 Python
详解Python设计模式之策略模式
2020/06/15 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
全国税务系统先进集体事迹材料
2014/05/19 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
教师个人自我评价
2015/03/04 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
大学军训通讯稿
2015/07/18 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android