vite+ts部署在嵌套的公共路徑的配置方案

? ? ? ?當項目部署在嵌套目錄時,目錄結(jié)構(gòu)像這樣:
? ? ? ?如果想同時在本地開發(fā)和部署時訪問上級目錄中的公共資源,那么,該如何配置vite.config.js。
? ? ? ?首先,一個嵌套部署項目須配置base屬性,這是公共基礎(chǔ)路徑,所有資源的路徑都將據(jù)此配置重寫。
? ? ? ?pulic目錄默認是?<root>/public
,但可以通過?publicDir
?選項?來配置,作為靜態(tài)資源服務(wù)的文件夾。該目錄中的文件在開發(fā)期間在?/
?處提供,并在構(gòu)建期間復(fù)制到?outDir
?的根目錄,并且始終按原樣提供或復(fù)制而無需進行轉(zhuǎn)換。該值可以是文件系統(tǒng)的絕對路徑,也可以是相對于項目根目錄的相對路徑。
? ? ? ?但是一些公共資源是可以被多個同域名的項目共享的,如果每個項目都復(fù)制一遍文件到pulic下,也不是不行,但我想給老板省點服務(wù)器空間【手動狗頭】。有人說了,那可以把域名都寫上去啊,那我就不想寫那么多嘛,累死了。還是折騰下配置吧,這樣不累,頭發(fā)多任性。那么,接下來,將上級目錄指定為公共目錄,且禁用復(fù)制。
? ? ? ?這樣,在本地就可以訪問了:
? ? ? ?所有路徑資源在構(gòu)建時會被加上base項配置的值。因此,這些公共資源部署后無法正常訪問。experimental.renderBuiltUrl 方法可以為構(gòu)建項目配置更高級的基礎(chǔ)路徑選項。這是一個實驗性特性,一般用來部署使用不同緩存策略的項目,這種場景目測還挺常見,所以這個特性應(yīng)該不會被廢棄吧。無論如何先試試看。
? ? ? ?測試進行到這一步,基本成功。一個空殼子項目實際上無法暴露太多問題。rollup具有輕量的優(yōu)點,同樣就失去了webpack靈活的優(yōu)點。期待配置里用到的兩個實驗性特性在未來都能正式使用。【祖師爺你睡了嗎?你怎么睡得著啊?!?/p>
? ? ? ?如果有別的辦法,請務(wù)必讓我知道。