這篇文章主要為大家展示了webpack+express如何實(shí)現(xiàn)文件精確緩存,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、網(wǎng)頁空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、新源網(wǎng)站維護(hù)、網(wǎng)站推廣。
由于最近開發(fā)的個(gè)人博客(Vue + node)在使用過程中,發(fā)現(xiàn)網(wǎng)絡(luò)加載有點(diǎn)慢,所以打算對(duì)它進(jìn)行一次優(yōu)化。本次優(yōu)化的目標(biāo)如下:
以上三點(diǎn)結(jié)合,就能實(shí)現(xiàn)文件的精確緩存。
換句話說,在一年內(nèi),如果我的個(gè)人博客沒有進(jìn)行任何更新,那同一臺(tái)電腦在這段時(shí)間內(nèi)訪問網(wǎng)站不會(huì)發(fā)起任何請(qǐng)求;如果有某個(gè)文件更新了,只會(huì)請(qǐng)求新的文件,舊的文件依舊從緩存讀取。
小知識(shí):
webpack 打包
根據(jù)文件內(nèi)容生成文件名
通過配置 output 的 filename 屬性可以實(shí)現(xiàn)這個(gè)需求。filename 屬性的值選項(xiàng)中有一個(gè) [contenthash],它將根據(jù)文件內(nèi)容創(chuàng)建出唯一 hash。當(dāng)文件內(nèi)容發(fā)生變化時(shí),[contenthash] 也會(huì)發(fā)生變化。
output: {
filename: '[name].[contenthash].js',
chunkFilename: '[name].[contenthash].js',
path: path.resolve(__dirname, '../dist'),
},提取第三方庫
由于引入的第三方庫一般都比較穩(wěn)定,不會(huì)經(jīng)常改變。所以將它們單獨(dú)提取出來,作為長(zhǎng)期緩存是一個(gè)更好的選擇。
這里需要使用 webpack4 的 splitChunk 插件 cacheGroups 選項(xiàng)。
optimization: {
runtimeChunk: {
name: 'manifest' // 將 webpack 的 runtime 代碼拆分為一個(gè)單獨(dú)的 chunk。
},
splitChunks: {
cacheGroups: {
vendor: {
name: 'chunk-vendors',
test: /[\\/]node_modules[\\/]/,
priority: -10,
chunks: 'initial'
},
common: {
name: 'chunk-common',
minChunks: 2,
priority: -20,
chunks: 'initial',
reuseExistingChunk: true
}
},
}
},除了提取第三方庫外,結(jié)合 Vue 使用 import 動(dòng)態(tài)引入組件還能實(shí)現(xiàn)按需加載。
express 設(shè)置
app.use((req, res, next) => { // 將 index.html 設(shè)為 no-cache
if(req.url == '/') {
res.setHeader('Cache-control', 'no-cache')
}
next()
})
app.use(express.static('dist', {
etag: false,
maxAge: 1000 * 60 * 60 * 24 * 365, // 緩存一年
})) // 將dist設(shè)為根目錄以上就是關(guān)于webpack+express如何實(shí)現(xiàn)文件精確緩存的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。
分享標(biāo)題:webpack+express如何實(shí)現(xiàn)文件精確緩存
轉(zhuǎn)載來于:http://chinadenli.net/article46/ipcchg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、企業(yè)建站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)