You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/utils/publish.ts

75 lines
2.0 KiB

import OSS from 'ali-oss';
import * as fs from "fs-extra-plus";
import GitRevisionPlugin from 'git-revision-webpack-plugin';
import * as path from "path";
import * as rq from "request-promise-native";
import { getFiles } from './utils';
let branch = new GitRevisionPlugin().branch();
let dir = path.resolve("./dist");
let files = getFiles(dir, []).filter(f => !f.startsWith("fonts") && path.extname(f) !== ".map" && ("manifest.json" !== path.basename(f)));
let formData = {
BranchName: branch,
};
if (formData.BranchName === "master")
formData.BranchName = "";
for (let f of files)
formData[f.substring(dir.length + 1)] = fs.createReadStream(f);
let url = "http://publish.cfcad.cn:3000/upload";
// let url = `http://127.0.0.1:3000/upload`;
rq.post({ url: url, formData: formData }, function optionalCallback(err, httpResponse, body)
{
if (err || body !== "ok")
return console.error('部署失败!', err);
else
{
console.info(`部署成功!`);
console.log(`http://t.cfcad.cn/${formData.BranchName}`);
}
});
async function up2oss()
{
if (!process.env.OSS_ACCESS_KEY_ID) return;
const oss = new OSS({
region: 'oss-rg-china-mainland',
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
bucket: 'webcad',
});
if (branch === "master") branch = "";
let files = await fs.glob("./dist/**/*");
for (let file of files)
{
let name = file.substring(7);
if (branch) name = branch + "/" + name;
if (path.extname(file) === ".map") continue;
if (path.basename(file) === "manifest.json") continue;
try
{
const uploadResult = await oss.put(name, file);
console.log('上传成功:', name);
const getResult = await oss.get(name);
console.log('获取文件成功:', name);
}
catch (error)
{
console.error('发生错误:', error);
}
}
console.log("上传完成!");
}
// up2oss();