首页 > 其他分享 >使用Angular创建组件,并发布到npm上

使用Angular创建组件,并发布到npm上

时间:2023-12-01 14:45:30浏览次数:32  
标签:npm demo list Angular export 组件 page

1.组件准备工作

1.先新建一个组件库项目

ng new angular-npm-demo

2.新建一个存放组件库的目录

ng g library demo --prefix=demo; 

3.进入 projects/demo/src/lib目录下新建一个组件,我的组件名叫做list-page

ng g c list-page

其中对list-page组件的内容进行变更表示是自己的组件

//list-page.component.html
<p>这是我第一个发布到npm上的组件</p>

4.每次新建的组件都需要在对应的module.ts进行exports

//我的demo.module.ts
import { NgModule } from '@angular/core'; import { DemoComponent } from './demo.component'; import { ListPageComponent } from './list-page/list-page.component'; @NgModule({ declarations: [ DemoComponent, ListPageComponent ], imports: [ ], exports: [ DemoComponent,ListPageComponent //注意 ] }) export class DemoModule { }

5.在public-api.ts中对新建的组件进行export

/*
 * Public API Surface of demo
 */

export * from './lib/demo.service';
export * from './lib/demo.component';
export * from './lib/demo.module';
export * from './lib/list-page/list-page.component';

2.npm发布前的准备工作

1.安装 ng-packagr

npm install ng-packagr --save-dev

2. 安装 [email protected]

npm install [email protected]

3.npm 账号准备

假设你已经有npm账号了,那么就开个终端
npm adduser
输入你的账号,密码,邮箱,这样以后npm publish就不用每次输密码了;

3.打包并发布

1.打包

ng build demo --prod     

打包成功之后会生成一个dist文件,dist文件的具体内容如下

2.发布

npm publish

可能出现的问题

名字重名了,在dist/demo/package.json修改name

4.检验发布是否成功

登陆自己的npm账户查看

5.使用

1.安装

npm i lycjser-demo

2.在具体的业务中xxx.module.ts引入

import { DemoModule } from 'lycjser-demo';

在装饰器中的imports也得引入


@NgModule({
  imports: [
    ...自己实际业务的module,
    DemoModule
  ],
})

3.在具体的html中使用自己的组件(demo-list-page组件)

//xxx.compotent.html
<demo-list-page></demo-list-page>

效果如下,大功告成

 

标签:npm,demo,list,Angular,export,组件,page
From: https://www.cnblogs.com/feifei0928/p/17869672.html

相关文章

  • el-check省市区选择组件 vue3
    引用组件//city_dialog.vue//PopWindow弹出层组件//AreaList省市区数据组件//areaData省市区数据<PopWindow:dialogVisible="dialogVisible"title="省市区选择"sizeType="large":btnType="2"@closeWin="closeWin"><div......
  • 父组件 同步修改/传值 子组件 vue3
    父组件//引入子组件<jyqk:selectData="selectData"ref="jyqk_ref"></jyqk>importfxjyfrom"./components/fxjy.vue";constjyqk_ref=ref<any>();constchange_data=(val:any)=>{jyqk_ref.value.getData();}......
  • vue3 标题组件
    <template><divclass="header_body"><divclass="header_inner"><divclass="title_line"></div><el-rowclass="titleBodyComl"><divclass="icon&qu......
  • 1、自定义上传组件实现动态指定action
    1、增加ynamicAction:String2、修改constuploadImgUrl=ref(props.dynamicAction||import.meta.env.VITE_APP_BASE_API+"/common/upload");//上传的图片服务器地址<el-uploadmultiple:action="uploadImgUrl"3、父组件<el-form-itemlab......
  • 记录--组件阅后即焚?挂载即卸载!看完你就理解了
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言上家公司有个需求是批量导出学生的二维码,我一想这简单啊,不就是先批量获取学生数据,然后根据QRcode生成二维码,然后在用html2canvas导出成图片嘛。由于公司工具库有现成的生成压缩包方法,我只需要获得对应的图片b......
  • 当多个使用弹窗类组件,可使用这种方式封装组件。(以下使用antd-vue、vue3)
    1.代码点击查看代码<template><slot:openDialog="openDialog":closDialog="modalCancel"></slot><a-modalv-model:open="open"title="BasicModal"@cancel="modalCancel"><templat......
  • 查看npm包某个具体版本及所有版本
    查看该包的所有版本及最新版本npminfojquery查看npmjs服务器上包的版本信息:使用npmviewjqueryversions;这种方式可以查看npm服务器上所有的jquery版本信息;使用npmviewjqueryversion;这种方式只能查看jquery的最新的版本是哪一个;使用npminfojquery;这种方式和第一种类......
  • npm install 报pnpm无法加载文件 (解决方法 )
    例如:我现在要运行一个TS的项目,我的电脑上没有安装pnpm,导致我的vscode一直报错无法加载 Pnpm安装npminstall-gpnpmpnpm:无法加载文件pnpm:无法加载文件C:\Users\HP\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.micro......
  • 关于layui使用弹出层模版后对应上传组件不工作的问题记录
    这里页面的聊天室是使用的弹出层:util.on('lay-on',{'open-chat-room':function(){layer.open({title:'项目聊天室',type:1,offset:&#......
  • vue3页面中,两个相同组件,一个卸载,一个挂载,后展示的组件事件监听不生效?
    场景:在实际开发中,遇到了这样一种场景,vue3页面,两个相同组件,在满足某条件下展示第一个组件,满足另一个条件下,隐藏第一个组件,同时展示第二个组件,比如反馈组件,会通过window.addEventListener来监听自定义的反馈弹窗展示和隐藏事件。结果:两个相同组件一个卸载,一个挂载,第一个组监听的......