前端工程一般發布在靜態服務器上即可,各云廠商的對象存儲產品都會支持靜態資源部署,aws的s3整套產品很成熟也非常完善,Ali的oos,騰訊的cos也有完整的sdk。
本篇文字主要簡述了前端工程在對象存儲服務的發布流程和最佳實踐,歡迎討論。
使用命令行發布
對象存儲服務都有提供對應的控制臺管理桶,同時也提供響應的API供后端業務調用。
aws-s3官方提供了命令行終端操作庫可以方便在命令行發布我們的靜態資源:https://aws.amazon.com/cn/cli/
我們可以這樣發布:
$ aws s3 sync dist s3://mybucket/myfolder
騰訊的cos可以使用很輕量第三方庫cos-manager
發布資源: https://github.com/yansenlei/cos-manager
# 首次寫入配置
$ cos-manager --id=AKIDxxx --key=xxx
# 上傳指定目錄
$ cos-manager --r=Region --b=Bucket-APPID --dir=dist
# 查看幫助信息
$ cos-manager -h
巧用 npm script
npm script 類似shell 的 exec,可以幫助你執行多個并行或順序執行的命令,我們可以一次性執行刪除本地dist資源->打包->發布
參考:
https://docs.npmjs.com/misc/scripts
http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html
以上發布我們可以這樣寫:
{
"script": {
"build:deploy": "rm -rf dist/ && npm run build && cos-manager --r=Region --b=Bucket-APPID --dir=dist"
}
}
一個命令,提包走人。(雖然走了有點慌...)
持續集成CI
持續集成是一種軟件開發實踐,每一次發布源碼都會集成一次,每一次都會自動化的構建,這意味著也可以把上面的發布腳本在服務端跑起來,打包 測試 發布全部交給CI處理,目前主流的工具是 Travis CI,具體可以參照:http://efe.baidu.com/blog/front-end-continuous-integration-tools/