Webpack path與publicPath的區(qū)別詳解
前言
在webpack模塊化開發(fā)的過程中,發(fā)現(xiàn)webpack.config.js配置文件的輸出路徑總有一個(gè)path與publicPath,不解其意。
module.exports = {
output: {
path: path.resolve("./examples/dist"),
filename: "app.js",
publicPath: "What should I put here?"
}
}
正文
官方解釋
publicPath: The output.path from the view of the Javascript / HTML page.
從JS/HTML頁面來看的輸出路徑
我的理解
output.path 儲(chǔ)存你所有輸出文件的本地文件目錄。(絕對路徑)
舉個(gè)例子:
path.join(__dirname, “build/”)
webpack將會(huì)把所有的文件輸出到localdisk/path-to-your-project/build/
output.publicPath
你上傳所有打包文件的位置(相對于服務(wù)器根目錄)
path:用來存放打包后文件的輸出目錄
publicPath:指定資源文件引用的目錄
用處:例如在express中,指定了public/dist是網(wǎng)站的根目錄,網(wǎng)站的源文件存放在public中,那么就需要設(shè)置path:”./dist”指定打包輸出到該目錄,而publicPath就需要設(shè)置為”/”,表示當(dāng)前路徑。
publicPath取決于你的網(wǎng)站根目錄的位置,因?yàn)榇虬奈募荚诰W(wǎng)站根目錄了,這些文件的引用都是基于該目錄的。假設(shè)網(wǎng)站根目錄為public,引用的圖片路徑是'./img.png',如果publicPath為'/',圖片顯示不了,因?yàn)閳D片都打包放在了dist中,那么你就要把publicPath設(shè)置為”/dist”。
舉個(gè)例子:
/assets/
假設(shè)你將這個(gè)工程部署在服務(wù)器 http://server/
通過將output.publicPath設(shè)置為/assets/,這個(gè)工程將會(huì)在http://server/assets/找到webpack資源。
在這種前提下,所有與webpack相關(guān)的路徑都會(huì)被重寫成以/assets/開頭。
src="picture.jpg" Re-writes ➡ src="/assets/picture.jpg" Accessed by: (http://server/assets/picture.jpg) src="/img/picture.jpg" Re-writes ➡ src="/assets/img/picture.jpg" Accessed by: (http://server/assets/img/picture.jpg)
重要
如果你在用style-loader或者css sourceMap,你就需要設(shè)置publicPath。把它設(shè)置成服務(wù)器地址的絕對路徑,比如http://server/assets/,這樣資源可以被正確加載。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
原生js仿jq判斷當(dāng)前瀏覽器是否為ie,精確到ie6~8
這篇文章主要介紹了原生js仿jq判斷當(dāng)前瀏覽器是否為ie,精確到ie6~8,需要的朋友可以參考下2014-08-08
原生JS實(shí)現(xiàn)簡單的無縫自動(dòng)輪播效果
輪播效果是老生常談的話題,今天小編通過實(shí)例代碼給大家分享原生JS實(shí)現(xiàn)簡單的無縫自動(dòng)輪播效果,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2018-09-09
Bootstrap實(shí)現(xiàn)默認(rèn)導(dǎo)航欄效果
這篇文章主要介紹了Bootstrap實(shí)現(xiàn)默認(rèn)導(dǎo)航欄效果,導(dǎo)航欄是一個(gè)很好的功能,是Bootstrap網(wǎng)站的一個(gè)突出特點(diǎn),本文帶領(lǐng)大家學(xué)習(xí)實(shí)現(xiàn)Bootstrap導(dǎo)航欄,需要的朋友可以參考下2015-12-12
html2canvas+jspdf實(shí)現(xiàn)下載pdf文件并添加水印
這篇文章主要為大家詳細(xì)介紹了如何使用html2canvas + jspdf進(jìn)行下載pdf文件添加水印,以及echarts圖片防止截?cái)嗵幚?有需要的小伙伴可以了解下2024-10-10
微信小程序自定義菜單導(dǎo)航實(shí)現(xiàn)樓梯效果
在html開發(fā)中,我們可以用到a標(biāo)簽錨點(diǎn)實(shí)現(xiàn),jq的動(dòng)畫相結(jié)合實(shí)現(xiàn)類似效果。在框架中vant UI框架也為我們實(shí)現(xiàn)了這一效果。接下來通過本文給大家介紹微信小程序自定義菜單導(dǎo)航實(shí)現(xiàn)樓梯效果,感興趣的朋友一起看看吧2021-12-12

