angular2 发布通用组件方法

1. 创建项目(使用 angular-cli)

ng new demon-project

2. 生成项目中主要发布的组件模块

ng g module services
ng g service services/demon-service

然后编写实际的业务代码,此处不详述。

3. 安装 ng-packagr

npm install ng-packagr --save-dev

4. 在根目录下创建一个 ng-package.json 文件,并且写入如下内容

{
    "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
    "lib": {
        "entryFile": "public_api.ts"
    }
}

5. 在根目录下创建 public_api.ts 文件,将需要暴露出来的组件或者服务等等的类写入

export * from './src/app/services/services.module';
export * from './src/app/services/demon-service.service';

6. 在 package.json 文件中添加编译脚本 “packagr”,同时将 private 改成 false,把 dependencies 改成 peerDependencies 或者干脆删掉 dependencies。

注:private = true 表示不允许将组件发布到公共仓库

peerDependencies 表示其他组件如果安装了这个组件,则需要安装 peerDependencies 引入的所有组件

angular 组件的版本号有 ~ ^ 的符号, ~ 表示适用小版本,比如 ~7.2.0 表示适用 7.2.X, ^ 表示适用大版本,比如 ^7.2.0 表示适用 7.X.X

  ......
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "packagr": "ng-packagr -p ng-package.json"
  },
  "private": false,
  "peerDependencies": {
    "@angular/animations": "~7.2.0",
    "@angular/common": "~7.2.0",
    "@angular/compiler": "~7.2.0",
    "@angular/core": "~7.2.0",
    "@angular/forms": "~7.2.0",
    "@angular/platform-browser": "~7.2.0",
    "@angular/platform-browser-dynamic": "~7.2.0",
    "@angular/router": "~7.2.0",
    "core-js": "^2.5.4",
    "md5": "^2.2.1",
    "rxjs": "~6.3.3",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.26"
  },

7. 编译生成 dist 目录

npm run packagr

8. 发布组件,在根目录下执行

npm publish dist --registry ${YOUR_SELT_REPOSITORY}

其中 ${YOUR_SELT_REPOSITORY} 替换为你自己的npm仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值