smarter-qiniu-webpack-plugin

Webpack 编译结束后,智能的把文件同步到 七牛云存储

Usage no npm install needed!

<script type="module">
  import smarterQiniuWebpackPlugin from 'https://cdn.skypack.dev/smarter-qiniu-webpack-plugin';
</script>

README

smarter-qiniu-webpack-plugin

Webpack 编译结束后,智能的把文件同步到 七牛云存储

功能

  • 支持并发上传
  • 智能分析,增量上传,不重复上传

安装

npm install --save-dev smarter-qiniu-webpack-plugin

使用

webpack.config.js

const SmarterQiniuWebpackPlugin = require('smarter-qiniu-webpack-plugin');

module.exports = {
  // ... Webpack 相关配置
  plugins: [
    new SmarterQiniuWebpackPlugin()
  ]
}

在项目目录下新建 qiniu_config.js 文件,并且在 .gitignore 忽略此文件

.qiniu_config.js

module.exports = {
  accessKey: 'qiniu access key', // required
  secretKey: 'qiniu secret key', // required
  bucket: 'demo', // required
  bucketDomain: 'https://domain.bkt.clouddn.com', // required
  exclude(path) {
    return /logo.*png/.test(path)
  },
  batch: 10,
  mutilThread: 8,
  root: '/static',
  notFoundPage: 'index.html',
  refresh: true,
  refreshIndexThrottle: 100,
  prefetch: true,
  prefetchSortMax: true
}

Options

Name Type Default Required Description
accessKey {String} true 七牛 Access Key
secretKey {String} true 七牛 Secret Key
bucket {String} true 七牛 空间名
bucketDomain {String} true 七牛 空间域名
exclude {Function} false 排除文件/文件夹
batch {Number} 10 false 同时上传文件数
mutilThread {Number} cpus.length - 1 false 计算文件差异的线程并发数
root {String} webpack.output false 根目录的位置
notFoundPage {String} false 当空间404时使用的文件
refresh {Boolean} true false 是否刷新新替换的文件
refreshIndexThrottle {Number} 100 false 当刷新文件的数量大于这个值时,直接更新目录
prefetch {Boolean} false false 是否预取新的文件
prefetchSortMax {String} true false 是否优先预取大文件

注意

由于七牛云储存的问题,可能会出现上传未被修改的文件,原因是七牛云返回的qetag值并非是最新的。 解决办法是确认刷新缓存后,用浏览器或其他工具禁用缓存的情况下访问,若能访问到最新的文件内容,那么其qetag值也就能被更新了。