將 vue 生成的 js 上傳到七牛

一般 vue 的項(xiàng)目,大家都是直接把最后生成的 css js 等文件直接上傳到服務(wù)器,并沒有cdn 的業(yè)務(wù)

這樣做一般有2個(gè)弊端,

  • 增加服務(wù)器帶寬壓力,訪問量一旦上去,服務(wù)器就可能因?yàn)閹拤毫斓?/li>
  • 部分地區(qū)訪問速度會(huì)變慢

不過雖然知道歸知道,但是每次都手動(dòng)把 js css 文件傳到七牛上很累的。
尤其是在改動(dòng)頻繁的情況下,每次上傳七牛 cdn 很浪費(fèi)時(shí)間。

于是就去找七牛的文檔,決定用腳本來(lái)解決這個(gè)問題,我是用的 python sdk 實(shí)現(xiàn)得。
python 環(huán)境請(qǐng)自行安裝

首先下載七牛的包
pip install qiniu

然后安裝第三方的依賴包 glob2
pip install glob2

upqiniu.py

# -*- coding: utf-8 -*-
from qiniu import Auth, put_file,
import qiniu.config
import glob2
import os
#需要填寫你的 Access Key 和 Secret Key
access_key = '*********************'
secret_key = '**********************'
#構(gòu)建鑒權(quán)對(duì)象
q = Auth(access_key, secret_key)
#要上傳的空間
bucket_name = '****'

resources = glob2.glob('dist/static/**')
def upload(path):
    file_name = path.replace('dist/', '')
    key = file_name
    token = q.upload_token(bucket_name, key, 3600)
    localfile = './' + path
    put_file(token, key, localfile)

for r in resources:
    if os.path.isfile(r):
      upload(r)

需要將本腳本(upqiniu.py)放到 dist 同級(jí)目錄下,如下圖:

image.png

腳本中的 access_key secret_key 你登錄七牛后在個(gè)人資料中即可找到:

image.png

還需要將 webpackpublicPath 改成七牛的地址即改成下面這個(gè)

image.png

vue 的項(xiàng)目中,只需要改動(dòng) config 目錄下面的 index.js 即可

image.png

雖然改動(dòng)起來(lái)有一點(diǎn)小麻煩,但是一勞永逸,

首先 npm run build

然后 python upqiniu.py

最后將你的 index.html 拉到線上服務(wù)器就可以了。

ps: 這個(gè)腳本會(huì)將 dist/static/ 的所有文件上傳到七牛,包括 ** 字體文件** , 圖片等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容