Matt Jhou
1. 使用方式
2. 開發方式(ng-packgr)
2-1. Component 打包 (漢堡選單)
2-2. Service 打包 (TimerService)
使用已開發完Angular Library
3. 參考資料
1. 使用方式
$npm install burger-menu-0.0.0.tgz
$npm install timer-lib-0.0.0.tgz
1. 安裝打包好的 Library
2. 引入使用的Module

3. 使用封裝後 UI Component: Burger-Menu
4. 使用封裝後 Service: TimerService

2-1 開發方式
Component(漢堡選單)
1. 開發完功能 (1 module for 1 Feature): 漢堡選單, 並測試
2. npm install ng-packagr --save-dev
3. 新增定義檔 public_api.ts, ng-package.json
4. 新增打包script 於 package.json
5. 執行打包指令
1.開發漢堡選單功能



2. ng-packagr
$npm install ng-packagr --save-dev
3-1. public_api.ts
export * from './src/app/modules/burger-menu/burger-menu.module';
3-2. ng-package.json
{
"$schema": "./node_modules/ng-packagr/ng-package.schema.json",
"lib": {
"entryFile": "public_api.ts"
}
}
4. pacakge.json

5. 封裝
$npm run packagr
$cd dist
$npm pack

2-2.開發方式
Service (TimerService)
1. 開發完功能 (1 module for 1 Feature): Timerservice, 並測試
2. npm install ng-packagr --save-dev
3. 新增定義檔 public_api.ts, ng-package.json
4. 新增打包script 於 package.json
5. 執行打包指令
1.開發Timer功能
$npm install easytimer --save
安裝 third party library


2. ng-packagr
$npm install ng-packagr --save-dev
3-1. public_api.ts
export * from './src/app/modules/timer/timer.module';
3-2. ng-package.json
{
"$schema": "./node_modules/ng-packagr/ng-package.schema.json",
"lib": {
"entryFile": "public_api.ts"
}
}
4. pacakge.json
$npm run packagr
$cd dist
$npm pack


5. 封裝
3.參考資料
1. ng-packagr library: https://www.npmjs.com/package/ng-packagr
2. Angular Team 介紹如和打包: https://www.youtube.com/watch?v=unICbsPGFIA&feature=youtu.be
a. 如何利用 tsc/ ngc/ rollup.js/ shellscript 打包 Angular Library
b. Angular AOT Library必須要有的 format : d.ts/ metadata.json/ js
c. 優化bundle後的library : rollup.js, flaterring, google closure...
3. Module: COMMON/ AMD/ UMD/ ES6
https://hackernoon.com/how-to-create-library-in-angular-2-and-publish-to-npm-from-scratch-f2b1272d6266
4. Webpack v.s. Rollup.js
https://medium.com/webpack/webpack-and-rollup-the-same-but-different-a41ad427058c
Package Angualr Module Lib
By Matt Jhou
Package Angualr Module Lib
- 182