前端自動打包部署上線記錄


思路:

1、從github上拉取代碼到服務器指定目錄(git clone 代碼倉庫地址),

2、進入到 服務器指定目錄/倉庫目錄 執行依賴安裝(例 npm install),

3、根據安裝依賴的結果,成功則執行打包編譯(例 npm run build),

4、根據編譯結果,執行部署的操作(例 scp myfile username@192.168.1.100:/home

 

開坑:

在危險邊緣試探~

一開始為了測試遠程執行命令,做了比較簡單的試探

直接把倉庫先拷到服務器了,然后調接口用nodejs的exec去執行命令

這里踩了一個坑,就是exec()無法執行‘cd 目錄名’的命令,原因如下

Yes, cd is not supported by exec. This is because exec spawns a child-process, and child-processes cannot change their parent's cwd. For example, exec('cd baz; myCommand'); would change the cwd for myCommand, but not for node.

然后找到了解決辦法,要去看nodejs關於進程的文檔

Each command is executed in a separate shell, so the first cd only affects that shell process which then terminates. If you want to run git in a particular directory, just have Node set the path for you:

exec('git status', {cwd: '/home/ubuntu/distro'}, /* ... */);

cwd (current working directory) is one of many options available for exec.


 

目前為止,已經弄明白如何進行代碼拉取、打包編譯、自動部署

但想要做一個完整的構建部署系統,還需要支持可查看的打包編譯以及部署記錄,需要可以回滾到之前的打包版本的功能雲雲

為了支持快速回滾,那么系統盤里應適當保存最近的打包(比如說三天以內),所以也要考慮壓縮問題,解/壓縮的過程中,也需要考慮到負責打包的機子內存的問題


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM