Tools 筆記

名詞筆記

publish(發佈版本名稱).bat

​用 nodejs 執行指定的 js 檔案

process.argv

​會返回一個數組,其中包含當 Node.js 進程被啟動時傳入的命令行參數。第一個元素是 process.execPath。
​​​​如果需要訪問 argv[0] 的原始值,則參見 process.argv0。 
​​​​第二個元素是正被执行的 JavaScript 文件的路徑。 其餘的元素是任何額外的命令行参數。
​
​example
​$ node process-args.js 参數1 参數2 参數3
​
​0: /usr/local/bin/node
​1: /Users/mjr/work/node/process-args.js
​2: 参數1
​3: 参數2
​4: 参數3

splice

​從 Array 中添加/刪除項目,回傳被刪除的項目。

__dirname

​目前資料夾的絕對路徑

path.resolve([paths])

​將路徑或路徑片段的序列解析為絕對路徑
​
​example
​path.resolve(__dirname, '../server/game_api/dao')
​
​返回
​D:\svn\NW\trunk\tools\server\game_api\dao
​
​若輸入的 path 中間有絕對路徑參數,則會捨棄該絕對路徑參數之前的路徑參數?
​
​example
​path.resolve(__dirname, "C://" + '/server/dataDig/base')
​
​返回
​C:\server\dataDig\base

child_process

​子程序模組,讓 Node.js 可以實現多核 CPU 運用的方法。
​
​child_process.exec()
​建立一個 shell 並在該 shell 中執行命令,完成時回傳 stdout 和 stderr 於回調函數。

unlinkSync

​刪除文件,同步,在執行完前不會執行下一步

Publish流程

在預設已經安裝 nodejs 套件的條件下,以 publish(發佈版本名稱).bat 為例子

input :

​​​​node ./releaseTool/publish.js 發佈版本名稱 10 ../client/egret C://

argv

參數 描述
"發佈版本名稱" publish name ?
"10" serverType,config 資料夾裡面的 GameConfig 編號設定
"../client/egret" clientPath
"C://" publishPath

publish.js 路徑參數

publishServerPath = '/svr'
publishClientPath = '/client/game'
publishAserverPath = '/server/game_api'
defaultNameResList = ["default.res.json", "res_en_us.json", "res_zh_cn.json", "res_zh_tw.json"];

執行結果

請選擇要發布的代碼
1: A端代碼  // 執行 publishAserver(),copy 某 server 資料夾檔案
2: B端代碼  // 執行 publishBserver(),copy 某 server 資料夾檔案
3: 前端代碼 // 執行 publishClient(version: string),執行 client 的 egret publish,並且將產出的檔案複製到另一個資料夾
4: C端代碼  // 執行 publishCserver(),copy 某 server 資料夾檔案

選擇3的範例

  1. 讀取 config 資料夾下的 GameConfig 檔案(編號代入 serverType 的值),將 GameConfig 的內容取代專案內的 GameConfig.ts 內容,只有 version 參數內容會被改為 publishClient 輸入的 version 數值,其餘內容會完整複製過去
  2. 接著執行 client 裡面的 egret 專案的 egret publish 指令
  3. 檔案產出後會另外產生一個 index1.html 檔案,將 index.htm 的內容複製過來,並且修改內容,<body></body>裡面會加上一段 script code
  4. 再打開四份 resources 檔案 (["default.res.json", "res_en_us.json", "res_zh_cn.json", "res_zh_tw.json"]),對 resources 下的 url 加上 md5 的 hash code
  5. 最後刪除 index.htm,將 index1.html 改名為 index.html,把 publish 的所有檔案複製到另一個資料夾內後就結束程序
tags: Project