用了差很少一年多的fis,感受他比其餘構建工具更容易上手,擴展插件也比較多。可是詬病也是有的,好比接下來要說的部署問題,雖然fis3自己也有比較好的方案解決(設置url參數),可是對於部署不是給內部同事對接而是給客戶部署是遇到很多問題,今天恰好有時間把這個問題解決啦,順便也紀錄下來。bash
因爲fis3部署生成的文件路徑是網站目錄根開始的(如:/assets/img/bg.png
),致使網站發佈必須是目錄根纔能有效加載。實際狀況可能使用http://www.uxfeel.com/lxyz/
這樣的目錄下發布,怎樣才能更好地發佈呢?服務器
修改fis設置,添加url
參數於靜態資源的構建規則中,例如:工具
let asset_dir = '/assets', url = '/lxyz/'+url; fis.match('**',{ release: asset_dir + '/$0', url: url + '$&' //改變引用地址 })
使用url
參數fis就會很好幫你把訪問路徑替換好,可是並不靈活。測試
假如你的項目交付給客戶,而後他們先部署到測試服務器測試,而後再部署到其餘服務器發佈呢?
這是客戶須要找你進行代碼的發佈,固然你能夠給開發包讓他們弄,可是也有不講理的時候。這是怎樣處理更方便呢?網站
能夠使用url替換腳本repath.sh
url
# $ repath.sh [group] [path] $ repath.sh lxyz ../release/lxyz-publish
repath.sh腳本,會搜着目錄下的全部文件並在/assets/
、"/assets/
、 ('/assets/
開頭的路徑前面添加[group]參數。插件
#!/bin/bash group=$1 path=$2 sed -i "s@(/assets/@(/$group/assets/@g" `grep "/assets/" -rl $path` sed -i "s@('/assets/@('/$group/assets/@g" `grep "/assets/" -rl $path` sed -i "s@\"/assets/@\"/$group/assets/@g" `grep "/assets/" -rl $path`
雖然辦法可能蠢一點,可是很實用?code