添加项目说明图片, 修改打包oss配置

This commit is contained in:
xie7654
2025-07-05 09:59:05 +08:00
parent 361004918f
commit e14730bee7
18 changed files with 657 additions and 106 deletions

View File

@@ -0,0 +1,77 @@
import fs from 'node:fs';
import path from 'node:path';
import OSS from 'ali-oss';
export default function vitePluginOss(options = {}) {
const {
enabled = false,
region,
accessKeyId,
accessKeySecret,
bucket,
prefix = '',
deleteLocal = false,
} = options;
if (!enabled) {
return {
name: 'vite-plugin-oss',
apply: 'build',
closeBundle() {
console.log('OSS upload disabled');
},
};
}
return {
name: 'vite-plugin-oss',
apply: 'build',
async closeBundle() {
console.log('Starting OSS upload...');
const client = new OSS({
region,
accessKeyId,
accessKeySecret,
bucket,
});
const distPath = path.resolve(process.cwd(), 'dist');
if (!fs.existsSync(distPath)) {
console.error('Dist folder not found');
return;
}
try {
await uploadDirectory(client, distPath, prefix);
console.log('OSS upload completed successfully');
if (deleteLocal) {
fs.rmSync(distPath, { recursive: true, force: true });
console.log('Local dist folder deleted');
}
} catch (error) {
console.error('OSS upload failed:', error);
}
},
};
}
async function uploadDirectory(client, localPath, prefix) {
const files = fs.readdirSync(localPath);
for (const file of files) {
const localFilePath = path.join(localPath, file);
const stats = fs.statSync(localFilePath);
if (stats.isDirectory()) {
await uploadDirectory(client, localFilePath, `${prefix}${file}/`);
} else {
const ossKey = `${prefix}${file}`;
await client.put(ossKey, localFilePath);
console.log(`Uploaded: ${ossKey}`);
}
}
}