当前位置: 首页 > news >正文

【Angular18】封装自定义组件

1. 准备组件

在这里插入图片描述

2. 创建打包文件夹及部分配置文件

在这里插入图片描述

  1. 创建 文件夹app-legalentities-root
  2. 拷贝组件源文件到新的文件夹app-legalentities中
  3. 创建文件 .npmrc
registry=发布地址always-auth=true
  1. 创建文件 ng-package.json
{"$schema": "./node_modules/ng-packagr/ng-package.schema.json","lib": {"entryFile": "public_api.ts"}}
  1. 创建文件 package.json
{"name": "xxx-xx-test","version": "0.0.9","scripts": {"ng": "ng","test": "ng test","packagr": "ng-packagr -p ng-package.json"},"private": true,"dependencies": {"@angular/animations": "^18.0.0","@angular/common": "^18.0.0","@angular/compiler": "^18.0.0","@angular/core": "^18.0.0","@angular/router": "^18.0.0","ng-zorro-antd": "^18.0.1","raise-ssh-test": "file:","rxjs": "~7.8.0","tslib": "^2.3.0","zone.js": "~0.14.3"},"devDependencies": {"@angular/animations": "^18.0.0","@angular/common": "^18.0.0","@angular/compiler": "^18.0.0","@angular/core": "^18.0.0","@angular/router": "^18.0.0","rxjs": "~7.8.0","tslib": "^2.3.0","zone.js": "~0.14.3"}
}
  • 创建文件 public_api.ts
export * from './app-legalentities/app-legalentities.component';
export * from './app-legalentities/app-legalentities.service';

3. 修改配置文件

  • 修改 public_api.ts,以下内容为导出的模块、service、modal等
export * from './app-legalentities/app-legalentities.component';
export * from './app-legalentities/app-legalentities.service';
  • 修改 package.json
"name": "app-legalentities-root", // 当前组件打包文件夹名称"version": "0.0.1", // 当前组件版本,每次发布后,下次发布前版本号+1"scripts": {...},"dependencies": {"@angular/animations": "^18.0.0", // 公共"@angular/common": "^18.0.0", //公共"@angular/compiler": "^18.0.0", //公共"@angular/core": "^18.0.0", //公共"@angular/router": "^18.0.0", //公共"ng-zorro-antd": "^18.0.1", // 当前组件依赖包"rxjs": "~7.8.0", //公共"tslib": "^2.3.0", //公共"zone.js": "~0.14.3" //公共},

4. down依赖包和安装打包指令

  1. 使用npm i 安装包
    在这里插入图片描述
  2. 执行 npm i ng-packagr //安装打包命令
npm i ng-packagr
  1. 配置 package.json 文件,删除 dependencies 和 devDependencies中的内容
{"name": "app-legalentities-root", `// 修改打包的名字`"version": "0.0.2",  `// 版本号 +1`"scripts": {"ng": "ng","test": "ng test","packagr": "ng-packagr -p ng-package.json"  `//配置打包命令`},"private": false // 这个要修改为false,下面的图忘记改了
}

在这里插入图片描述

5. 打包开始-生成dist文件

  1. 执行 npm run packagr 生成dist文件
npm run packagr
  1. 进入dist 文件目录-执行 `npm pack 生成一个压缩文件
npm pack

6. 安装vsts-npm-auth和配置

  1. 在app-legalentities-root文件夹下 安装 vsts-npm-auth
npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
  1. 在dist根目录下创建文件.npmrc,内容同2.3
  2. 在dist文件夹中配置vsts-npm-auth
vsts-npm-auth -config .npmrc

7. 发布打包文件

在dist文件夹中执行指令 npm publish发布组件

npm publish

8. 引入自定义组件

  1. 在使用组件的根目录下,即跟package.json同级创建文件.npmrc,内容同2.3
    在这里插入图片描述

  2. 安装组件 npm i app-country-select@0.0.1

npm i app-country-select@0.0.1

9. 后续升级

  1. 在demo框架中测试升级功能,测试通过后执行下一步。
  2. 版本号 + 1,删除原先的dist文件夹及其内容,完成后执行下一步。
  3. 打包生成dist,复制文件 .npmrc,然后pack压缩文件,完成后执行下一步
// 在root文件夹中执行
npm run packagr// 在dist中执行
npm pack
  1. 在dist文件夹中配置vsts-npm-auth,然后发布组件
// 配置发布环境
vsts-npm-auth -config .npmrc// 发布组件
npm publish

遇到的问题

  1. ‘npm run packagr’ 打包报错了
    解决方案:将 angular框架的 app-legalentities-root文件夹移到单独的位置,首先删除已经安装好的依赖包,然后执行第四步
    在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 二叉树《数据结构》
  • Swift代码审查的艺术:利用工具精炼代码质量
  • TCP详解(二)滑动窗口/流量控制
  • C++函数重载(一)
  • MySQL:information_schema查找某个表的主键是否在数据的其他位置出现之二
  • 三、前后端分离通用权限系统(3)
  • vue中未能及时获取到props?
  • docker入门之cgroups
  • Linux的chmod指令
  • 电测量数据交换DLMS∕COSEM组件第62部分:COSEM接口类(2)
  • 14.3 Matplotlib与Seaborn数据可视化
  • 基于web网上村委会业务办理系统pf
  • Linux中的锁
  • 预计下半年业务将反弹回升,亚信科技的底气源自哪里?
  • MySQL——单表查询(二)按条件查询(4)空值查询
  • [译]CSS 居中(Center)方法大合集
  • 【comparator, comparable】小总结
  • 【个人向】《HTTP图解》阅后小结
  • angular学习第一篇-----环境搭建
  • echarts花样作死的坑
  • log4j2输出到kafka
  • MYSQL 的 IF 函数
  • Nacos系列:Nacos的Java SDK使用
  • vue-cli在webpack的配置文件探究
  • 彻底搞懂浏览器Event-loop
  • 大主子表关联的性能优化方法
  • 码农张的Bug人生 - 见面之礼
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 扑朔迷离的属性和特性【彻底弄清】
  • 使用 @font-face
  • 为视图添加丝滑的水波纹
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一道闭包题引发的思考
  • 一文看透浏览器架构
  • Spring Batch JSON 支持
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • #Spring-boot高级
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)计算机毕业设计大学生兼职系统
  • (汇总)os模块以及shutil模块对文件的操作
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .cfg\.dat\.mak(持续补充)
  • .JPG图片,各种压缩率下的文件尺寸
  • .NET 3.0 Framework已经被添加到WindowUpdate