Nx和ng-packagr,Angualr 打包组件,发布使用

此项目是使用Angular CLINrwl Nx生成的。


现在开始安装项目和完成配置
Nx是企业级Angular应用程序的开源工具包。
Nx旨在帮助您创建和构建企业级Angular应用程序。 它为应用程序项目结构和模式提供了一种有见地的方法。

总结来说就是一个打包的工具


快速入门和文档

观看关于如何开始使用Nx的5分钟视频。

生成你的第一个应用程序

打开cmd命令提示符:

安装:
全局安装  yarn global add @angular/cli 或  npm install -g @angular/cli
全局安装  yarn global add @nrwl/schematics 或  npm install -g @nrwl/schematics
全局安装  yarn global add @nrwl/nx 或  npm install -g @nrwl/nx
创建Nx工作区的最简单方法是运行:
ng new workspace --collection=@nrwl/schematics
workspace可以换成你喜欢的项目名

在项目下安装:yarn add @nrwl/schematicsnpm install @nrwl/schematics


配置package.json
在package.json中添加如下内容
{
    ......
    "distributionManagement": {
        "releaseRegistry": "服务器地址:端口/repository/npm/",
        "snapshotRegistry": "服务器地址:端口/repository/npmHosted/"
    },
    "publishConfig": {
        "registry": "服务器地址:端口/repository/npmHosted/"
    },
    "scripts": {
        .....
        "build:lib": "ng-packagr -p libs/telin-ewifi-gis/package.json"
    },
    "private": false
    ......
}


创建应用程序

将新应用程序添加到Nx Workspace是通过使用Angular CLI generate命令完成的。 Nx有一个名为app的示意图,可用于将新应用程序添加到我们的工作区中:

在项目中添加: ng generate app myappng generate application myapp # same thing, 我只使用过第一种方法创建过程序,建议第一种。第二种可以自己尝试下。
myapp可以换成你喜欢的名称

创建一个Lib

通过使用Angular CLI生成命令将新库添加到Nx Workspace,就像添加一个新应用程序一样。
在项目中添加: ng generate lib mylibng generate library mylib # same thing, 我只使用过第一种方法创建过程序,建议第一种。第二种可以自己尝试下。
mylib可以换成你喜欢的名称

如此,以上步骤就将项目的开发环境和测试环境就配置好了,下面我们可以进行编码了

运行

ng serve 或者自定义端口号 ng serve --port 1200    // 1200为自定义的端口号

打包 build


在mylib创建package.json

{
    "$schema": "../../node_modules/ng-packagr/package.schema.json",
    "name": "telin-ewifi-gis",               
// 创建的组件名
    "version": "2.0.0",                        // 版本
    "ngPackage": {
        "lib": {
            "entryFile": "src/index.ts"        // 入口
        },
        "dest": "@common/telin-ewifi-gis"      // 打的包命名为@common
    }
}
package.json 用来配置 ng-packagr 并告诉它去哪里找 index.ts 文件,这个文件通常是用来导出我们组件库的功能模块。(备注:index.ts 文件是 Angular 组件的使用约定)
运行 build:lib命令,我们在之前已经配置好了。
编译之后包为:
@common
    telin-ewifi-gis
        lib
        index.d.ts
        package.json
        telin-ewifi-gis.d.ts
        ......

在接着,我们进入 telin-ewifi-gis文件:
运行命令 npm pack,得到了: telin-ewifi-gis-2.0.0.tgz

上传至私服

 npm publish

可能有问题,我一般都是这么发布的



将这个包上传到npm私服,npm私服地址

更多帮助
要在Angular CLI上获得更多帮助,请使用帮助或查看Angular CLI README自述文件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以给你一个示例程序,该程序使用了ng-zorro-antd组件库中的7种组件,以实现一个简单的用户管理系统。 1. 安装Angular CLI 如果你还没有安装Angular CLI,那么可以使用以下命令进行安装: ``` npm install -g @angular/cli ``` 2. 创建新的Angular项目 使用以下命令创建一个新的Angular项目: ``` ng new user-management ``` 3. 安装ng-zorro-antd组件使用以下命令安装ng-zorro-antd组件库: ``` npm install ng-zorro-antd --save ``` 4. 配置ng-zorro-antd主题 在`styles.scss`文件中添加以下内容: ```scss @import "~ng-zorro-antd/ng-zorro-antd.less"; ``` 然后,在`angular.json`文件中添加以下内容: ```json "styles": [ "src/styles.scss" ], ``` 5. 创建用户管理模块 使用以下命令创建一个新的模块: ``` ng g m user-management ``` 6. 创建用户管理组件 使用以下命令创建一个新的组件: ``` ng g c user-management/user-list ``` 7. 在用户管理组件使用ng-zorro-antd组件 在`user-list.component.html`文件中添加以下内容: ```html <nz-table [nzData]="users" [nzPageSizeOptions]="[10, 20, 30]" [nzPageSize]="pageSize" [nzLoading]="loading"> <thead> <tr> <th nzShowSort nzSortKey="name" (nzSortChange)="onSortChange($event)">Name</th> <th>Email</th> <th>Phone</th> </tr> </thead> <tbody> <tr *ngFor="let user of users"> <td>{{user.name}}</td> <td>{{user.email}}</td> <td>{{user.phone}}</td> </tr> </tbody> </nz-table> <nz-pagination [nzPageIndex]="pageIndex" [nzPageSize]="pageSize" [nzTotal]="total" (nzPageIndexChange)="onPageIndexChange($event)" (nzPageSizeChange)="onPageSizeChange($event)"></nz-pagination> ``` 在`user-list.component.ts`文件中添加以下代码: ```typescript import { Component, OnInit } from '@angular/core'; import { NzTableSortOrder } from 'ng-zorro-antd/table'; interface User { name: string; email: string; phone: string; } @Component({ selector: 'app-user-list', templateUrl: './user-list.component.html', styleUrls: ['./user-list.component.scss'] }) export class UserListComponent implements OnInit { users: User[] = [ { name: 'John Doe', email: 'john.doe@gmail.com', phone: '555-1234' }, { name: 'Jane Smith', email: 'jane.smith@gmail.com', phone: '555-5678' }, { name: 'Bob Johnson', email: 'bob.johnson@gmail.com', phone: '555-9012' }, { name: 'Alice Lee', email: 'alice.lee@gmail.com', phone: '555-3456' }, { name: 'Tom Brown', email: 'tom.brown@gmail.com', phone: '555-7890' } ]; pageIndex = 1; pageSize = 10; total = this.users.length; loading = false; sortName: string | null = null; sortOrder: NzTableSortOrder | null = null; constructor() { } ngOnInit(): void { } onPageIndexChange(pageIndex: number): void { this.pageIndex = pageIndex; } onPageSizeChange(pageSize: number): void { this.pageSize = pageSize; this.total = this.users.length; } onSortChange(event: { key: string; value: NzTableSortOrder }): void { this.sortName = event.key; this.sortOrder = event.value; this.loading = true; setTimeout(() => { this.loading = false; if (this.sortName && this.sortOrder) { this.users = this.users.sort((a, b) => this.sortOrder === 'ascend' ? a[this.sortName!] > b[this.sortName!] ? 1 : -1 : b[this.sortName!] > a[this.sortName!] ? 1 : -1 ); } else { this.users = [...this.users]; } }, 1000); } } ``` 8. 在应用中使用用户管理模块 在`app.module.ts`文件中添加以下代码: ```typescript import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { NgZorroAntdModule } from 'ng-zorro-antd'; import { UserManagementModule } from './user-management/user-management.module'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, NgZorroAntdModule, UserManagementModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } ``` 9. 运行应用 使用以下命令运行应用: ``` ng serve ``` 然后,在浏览器中打开`http://localhost:4200`,即可看到用户管理列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值