wot-design-uni/build/deploy.js
2023-06-12 00:24:39 +08:00

73 lines
1.8 KiB
JavaScript

/*
* @Author: weisheng
* @Date: 2022-01-28 14:23:02
* @LastEditTime: 2023-03-21 20:59:16
* @LastEditors: weisheng
* @Description:
* @FilePath: \fant-mini-plus\build\deploy.js
* 记得注释
*/
const OSS = require('ali-oss')
const fs = require('fs')
const client = new OSS({
region: 'oss-cn-hongkong',
accessKeyId: 'LTAI5tJ6okg3xgdy4VfCjmzs',
accessKeySecret: '8Hk0Af1CQufErdjrnTI2o5BQmbhY41',
bucket: 'historysoa'
})
async function putOss(ossPath, filePath) {
try {
const result = await client.multipartUpload(ossPath, filePath)
console.log(`上传远程oss文件:${filePath}成功!`)
} catch (e) {
console.log(`上传异常:${e}`)
}
}
/**
* 上传前删除所有的文件
*/
async function deleteAll(object) {
const result = await client.list({
prefix: `${object}`
})
result.objects.forEach((item) => {
client.delete(item.name)
console.log(`删除远程oss文件:${item.name}成功!`)
})
}
/**
* 获取指定文件夹下的文件
* @param {string} local 文件夹路径
*/
async function addFile(local, objectName, srcName) {
const localFiles = fs.readdirSync(local)
localFiles.forEach(async (localFile) => {
// 拼接文件夹子项的路径
const filePath = `${local}/${localFile}`
// 获取子项文件信息
const stat = fs.statSync(filePath)
if (stat.isFile()) {
console.log(srcName, 'srcName')
const ossPath = filePath.split(`${srcName ? srcName : local}`).join(`${objectName}`)
// 上传到oss
await putOss(ossPath, filePath)
} else {
addFile(filePath, objectName, srcName ? srcName : local)
}
})
}
async function upload() {
await deleteAll('fant-mini-plus')
await addFile('fant-doc/dist', 'fant-mini-plus')
await deleteAll('fant-demo')
await addFile('dist/build/h5', 'fant-demo')
}
upload()