成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

一個(gè)命令完成[打包+同步七牛cdn+上傳服務(wù)器]

張春雷 / 3307人閱讀

摘要:實(shí)現(xiàn)一個(gè)命令完成打包同步上傳服務(wù)器說明由于我們用的七牛云存儲(chǔ),所以也是走的七牛,所以并不適用于其他的,但是思路可以借鑒打包打包目前我這邊用的是,網(wǎng)上已經(jīng)有很多文章了,這里就不作過多闡述了,只是說一下這個(gè)參數(shù),如果要做同步肯定是要配置這個(gè)參

webpack+gulp+qshell+npm-scripts實(shí)現(xiàn)一個(gè)命令完成[打包+同步cdn+上傳服務(wù)器]

說明

由于我們用的七牛云存儲(chǔ),所以cdn也是走的七牛,所以并不適用于其他的cdn,但是思路可以借鑒

打包

打包目前我這邊用的是webpack,網(wǎng)上已經(jīng)有很多文章了,這里就不作過多闡述了,只是說一下publicPath這個(gè)參數(shù),如果要做cdn同步肯定是要配置這個(gè)參數(shù)的,目前我是這樣配置的:

http://youCdnPath/${process.env.npm_package_name}/

上面的process.env.npm_package_name就是你packge.json里面的name字段

上傳資源到服務(wù)器

這塊的實(shí)現(xiàn)我用的是gulp配合gulp-ssh來實(shí)現(xiàn)的,會(huì)先刪除現(xiàn)有文件然后上傳,不會(huì)由于文件指紋變動(dòng)導(dǎo)致文件的堆積,然后所有的靜態(tài)資源都走的cdn,所以,只上傳了dist目錄下不包括static目錄的文件,具體配置如下:

/*
  yarn add gulp gulp-ssh
 */
const gulp = require("gulp")
const GulpSSH = require("gulp-ssh")
// 需要上傳到服務(wù)器的路徑
const remotePath = "/home/wwwroot/default/hyan_weixin/public/pages/h5/2018/0125zaosangrenhe"
const config = {
  ssh: { // 正式
    host: "xx.xx.xx.xx",
    port: 22,
    username: "root",
    password: "xxxxxxxx"
  },
  remotePath: remotePath,
  commands: [
    // 刪除現(xiàn)有文件
    `rm -rf ${remotePath}`
  ]
}
let gulpSSH = new GulpSSH({
  ignoreErrors: false,
  sshConfig: config.ssh
})
/**
 * 上傳前先刪除服務(wù)器上現(xiàn)有文件...
 */
gulp.task("execSSH", () => {
  console.log("刪除服務(wù)器上現(xiàn)有文件...")
  return gulpSSH.shell(config.commands, {filePath: "commands.log"})
      .pipe(gulp.dest("logs"))
})
/**
 * 上傳文件到服務(wù)器
 */
gulp.task("deploy", ["execSSH"], () => {
  console.log("2s后開始上傳文件到服務(wù)器...")
  setTimeout(() => {
    return gulp.src(["./dist/**", "!./dist/static/**"])
        .pipe(gulpSSH.dest(config.remotePath))
  }, 2000)
})
同步靜態(tài)資源到cdn

這塊用的到是我自己開發(fā)的一個(gè)npm插件qiniu-qupload,配置起來也很方便,這段代碼我放在./scripts/cdn.js目錄下,具體內(nèi)容如下:

const qiniuUploader = require("qiniu-qupload")
const path = require("path")
const qnConf = {
  "ak"            : "youAK",
  "sk"            : "youSK",
  "src_dir"       : `${path.resolve(process.cwd(), "./dist/static").replace(//g, "")}`,
  "bucket"        : "youBucket",
  "key_prefix"    : "11test/static/",
  "overwrite"     : true,
  "rescan_local"  : true,
  "log_file"      : "qnupload.log",
  "file_type"     : 0
}
qiniuUploader(qnConf)

把上面對(duì)應(yīng)的字段換成你自己的七牛的配置就行了,一般這些參數(shù)就可以了,另外,需要特別說明一下src_dir這個(gè)參數(shù),mac和windows不一樣,上面的為windows平臺(tái)的示例,mac應(yīng)該為path.resolve(process.cwd(), "./test")但是我沒驗(yàn)證,具體說明和其他完整的配置參數(shù)可參考qshell-qupload官方文檔

注意:qiniu-qupload插件依賴于七牛的命令行工具qshell,所以需要先安裝qshell 集成打包,同步cdn,上傳服務(wù)器為一個(gè)命令

這一步就比較簡單了,直接在package.json里面的scripts字段加個(gè)命令就行了,具體如下:

{
  "name": "11test",
  "scripts": {
    "dev": "node build/dev-server.js",
    "build": "node build/build.js",
    "deploy": "gulp deploy",
    "build-cdn-deploy": "npm run build && node scripts/cdn.js && npm run deploy"
  }
}

然后直接執(zhí)行npm run build-cdn-deploy就行了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107364.html

相關(guān)文章

  • Hybird-離線資源生成工具

    摘要:為了滿足以上需求,就需要制作打包腳本和工具,來滿足正常的運(yùn)維。離線資源生成工具離線資源的生成,我們提供了一個(gè)工具可以打包出增量和全量升級(jí)包。比如和需要統(tǒng)一成。 目錄 背景 離線資源生成工具 前端協(xié)助 背景 由于線上樂刻客戶端 App 第一次打開平臺(tái) H5 需要幾秒的加載時(shí)間,這個(gè)體驗(yàn)對(duì)用戶來說并不友好,為了讓用戶跳轉(zhuǎn) H5 和跳轉(zhuǎn)到原生一樣的用戶體驗(yàn),就需要把 H5 相關(guān)的離線資源...

    siberiawolf 評(píng)論0 收藏0
  • Hybird-離線資源生成工具

    摘要:為了滿足以上需求,就需要制作打包腳本和工具,來滿足正常的運(yùn)維。離線資源生成工具離線資源的生成,我們提供了一個(gè)工具可以打包出增量和全量升級(jí)包。比如和需要統(tǒng)一成。 目錄 背景 離線資源生成工具 前端協(xié)助 背景 由于線上樂刻客戶端 App 第一次打開平臺(tái) H5 需要幾秒的加載時(shí)間,這個(gè)體驗(yàn)對(duì)用戶來說并不友好,為了讓用戶跳轉(zhuǎn) H5 和跳轉(zhuǎn)到原生一樣的用戶體驗(yàn),就需要把 H5 相關(guān)的離線資源...

    hedge_hog 評(píng)論0 收藏0
  • Hybird-離線資源生成工具

    摘要:為了滿足以上需求,就需要制作打包腳本和工具,來滿足正常的運(yùn)維。離線資源生成工具離線資源的生成,我們提供了一個(gè)工具可以打包出增量和全量升級(jí)包。比如和需要統(tǒng)一成。 目錄 背景 離線資源生成工具 前端協(xié)助 背景 由于線上樂刻客戶端 App 第一次打開平臺(tái) H5 需要幾秒的加載時(shí)間,這個(gè)體驗(yàn)對(duì)用戶來說并不友好,為了讓用戶跳轉(zhuǎn) H5 和跳轉(zhuǎn)到原生一樣的用戶體驗(yàn),就需要把 H5 相關(guān)的離線資源...

    J4ck_Chan 評(píng)論0 收藏0
  • Webpack 項(xiàng)目優(yōu)化雜記

    摘要:入口文件打包出口地址在中可以配置我們的地址這里你要有一個(gè)七牛云的賬戶。特別像是七牛云這樣擁有圖片處理引擎的服務(wù)商,我們還可以通過來處理上傳至的圖片。 本項(xiàng)目源碼均可在 這里 找到。 之前公司的官網(wǎng)項(xiàng)目靜態(tài)文件都是放在靜態(tài)服務(wù)器中,這其中的弊端就不贅述了。簡單說一下 CDN 的好處: CDN 可以解決因分布、帶寬、服務(wù)器性能帶來的訪問延遲問題,適用于站點(diǎn)加速、點(diǎn)播、直播等場景。使用戶可就...

    incredible 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<