Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/staven630/webpack-oss
webpack静态资源一键上传阿里云OSS插件,兼容webpack3.x/4.x
https://github.com/staven630/webpack-oss
oss webpack webpack-oss
Last synced: 5 days ago
JSON representation
webpack静态资源一键上传阿里云OSS插件,兼容webpack3.x/4.x
- Host: GitHub
- URL: https://github.com/staven630/webpack-oss
- Owner: staven630
- License: mit
- Created: 2018-04-16T09:32:45.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-01-13T10:18:45.000Z (about 5 years ago)
- Last Synced: 2025-01-31T03:51:38.889Z (6 days ago)
- Topics: oss, webpack, webpack-oss
- Language: JavaScript
- Homepage:
- Size: 30.3 KB
- Stars: 29
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# [webpack-oss](https://github.com/staven630/webpack-oss)
> webpack静态资源一键上传阿里云OSS插件,兼容webpack3.x/4.x# 安装
```
npm i webpack-oss --save-dev
```# 参数
| 选项名 | 类型 | 是否必填 | 默认值 | 描述 |
| :-------------- | :------------------- | :------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------- |
| accessKeyId | String | √ | | 阿里云accessKeyId |
| accessKeySecret | String | √ | | 阿里云accessKeySecret |
| region | String | √ | | 阿里云region |
| bucket | String | √ | | 阿里云bucket |
| prefix | String | × | '' | 自定义路径前缀,通常使用项目目录名,文件将存放在alioss的bucket/prefix目录下 |
| format | Number | × | '' | 可用时间戳来生成oss目录版本号,每次会保留最近的版本文件做零宕机发布,删除其他版本文件。可以通过插件自身提供的静态方法getFormat()获得 |
| limit | Number | × | 5 | 最多备份版本数量,会备份最近的版本,最小是3。配置了format才会生效 |
| deleteAll | Boolean | × | | 是否删除bucket/prefix中所有文件。优先匹配format配置 |
| local | Boolean | × | false | 默认每次上传webpack构建流中文件,设为true可上传打包后webpack output指向目录里的文件 |
| output | String | × | '' | 读取本地目录的路径,如果local为true,output为空,默认为读取webpack输出目录 |
| exclude | ExpReg/Array | × | null | 可传入正则,或正则组成的数组,来排除上传的文件 |# 静态方法
> static getFormat()参数又由YYYY|YY|MM|DD|HH|hh|mm|SS|ss组合而成,返回一个纯数字。
|
```javascript
const WebpackAliOSSPlugin = require('webpack-oss')WebpackAliOSSPlugin.getFormat()
WebpackAliOSSPlugin.getFormat('YYYY')
```# 实例
* 使用webpack构建流文件上传,并删原有所有资源
```javascript
const WebpackAliOSSPlugin = require('webpack-oss')new WebpackAliOSSPlugin({
accessKeyId: '2****************9',
accessKeySecret: 'z**************=',
region: 'oss-cn-hangzhou',
bucket: 'staven',
prefix: 'nuxt-doc', // "staven/nuxt-doc/icon_696aaa22.ttf"
exclude: [/.*\.html$/], // 或者 /.*\.html$/,排除.html文件的上传
deleteAll: true // 优先匹配format配置项
})
```
* 使用打包后的本地文件上传
```javascript
const WebpackAliOSSPlugin = require('webpack-oss')
const path = require('path')new WebpackAliOSSPlugin({
accessKeyId: '2****************9',
accessKeySecret: 'z**************=',
region: 'oss-cn-hangzhou',
bucket: 'staven',
prefix: 'nuxt-doc', // "staven/nuxt-doc/icon_696aaa22.ttf"
exclude: [/.*\.html$/], // 或者 /.*\.html$/,排除.html文件的上传
local: true,
output: path.resolve(__dirname, './build') // 此项不填,将默认指向webpack/vue-cli等工具输出目录
})
```
* 使用format做版本备份
```javascript
const WebpackAliOSSPlugin = require('webpack-oss')
const time = WebpackAliOSSPlugin.getFormat('YYMMDD')new WebpackAliOSSPlugin({
accessKeyId: '2****************9',
accessKeySecret: 'z**************=',
region: 'oss-cn-hangzhou',
bucket: 'staven',
prefix: 'nuxt-doc', // "staven/nuxt-doc/icon_696aaa22.ttf"
exclude: [/.*\.html$/], // 或者 /.*\.html$/,排除.html文件的上传
deleteAll: false, // 优先匹配format配置项
format: time, // 备份最近版本的oss文件,删除其他版本文件
local: true, // 上传打包输出目录里的文件
limit: 10 // 备份版本数量,其余版本被删除
})
```