Angular5發佈npm的方法

Angular10已發佈,但爲了發佈兼容angular5的老項目的npm包,只能考慮使用老版本的angular進行發佈,以前少各種不必要的問題。(試用Angular9發佈,但引入Angular5項目中後,報錯)

1、創建應用,並在app目錄下添加my-lib-modules(自定義)文件夾,在文件夾內創建test.module(名稱自定義),在test.module下添加component,並添加在exports中

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import {TestComponent} from "./test/test.component";

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: [
    TestComponent,
  ],
  exports: [
    TestComponent,
  ],
})
export class TestModule { }

2、安裝ng-packagr工具

npm install [email protected] --save-dev

關於ng-packagr版本的問題,試用了很多個版本,打包時均報錯,後在ng-packagr的github處找到有人回覆的答案,Angular5項目使用[email protected]可以發佈,但試用後還有是問題

因此考慮可能與CLI的版本有關,作者使用的是@angular/[email protected],因此試用了1.6.0的ng-packagr,正確輸出結果。

3、在根目錄下創建ng-package.json與public_api.ts文件,與src平級

ng-package.json文件內容:

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

public_api.ts文件內容:

export * from './src/app/my-lib-modules/test/test.module';

4、修改package.json文件

"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 // 修改

注意:要刪除dependencies和devDependencies的內容,僅保留上面內容即可

5、進入dist文件夾,運行npm pack,得到xxxxxx.tgz文件

npm pack

6、登錄/註冊npm

npm login

正確輸入用戶名、密碼、郵箱,如果是註冊的話還要進入郵箱進行驗證

登錄成功會返回Logged in as dickence on https://registry.npmjs.org/.

7、發佈

npm publish

 

 

 

 

 

EOF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章