mv images

This commit is contained in:
锦恢 2025-05-31 21:40:24 +08:00
parent 2c5721b6b1
commit 5e8ef5f50f
3 changed files with 70 additions and 2 deletions

View File

@ -44,7 +44,7 @@ export default withMermaid({
}, },
ssr: { ssr: {
noExternal: [ noExternal: [
// 如果还有别的依赖需要添加的话,并排填写和配置到这里即可 // // 如果还有别的解析失败的依赖需要添加的话,并排填写和配置到这里即可 //
'@nolebase/vitepress-plugin-inline-link-preview', '@nolebase/vitepress-plugin-inline-link-preview',
'@unlazy/vue' '@unlazy/vue'
], ],

View File

@ -2,7 +2,7 @@
"scripts": { "scripts": {
"dev": "vitepress dev", "dev": "vitepress dev",
"build": "vitepress build", "build": "vitepress build",
"postbuild": "cp -r images .vitepress/dist/images", "postbuild": "node scripts/move-image.js",
"preview": "vitepress preview" "preview": "vitepress preview"
}, },
"dependencies": { "dependencies": {

68
scripts/move-image.js Normal file
View File

@ -0,0 +1,68 @@
const fs = require('fs');
const path = require('path');
// 要排除的文件夹
const excludedDirs = ['node_modules', '.vitepress', '.vscode', 'scripts'];
// 递归搜索图片文件夹
function findImageDirs(rootDir, currentDir = '', results = []) {
const fullPath = path.join(rootDir, currentDir);
const items = fs.readdirSync(fullPath);
for (const item of items) {
const itemPath = path.join(currentDir, item);
const fullItemPath = path.join(rootDir, itemPath);
const stat = fs.statSync(fullItemPath);
if (stat.isDirectory()) {
if (item === 'image' || item === 'images') {
results.push(itemPath);
} else if (!excludedDirs.includes(item)) {
findImageDirs(rootDir, itemPath, results);
}
}
}
return results;
}
// 复制文件夹
function copyDir(src, dest) {
if (!fs.existsSync(dest)) {
fs.mkdirSync(dest, { recursive: true });
}
const items = fs.readdirSync(src);
for (const item of items) {
const srcPath = path.join(src, item);
const destPath = path.join(dest, item);
const stat = fs.statSync(srcPath);
if (stat.isDirectory()) {
copyDir(srcPath, destPath);
} else {
fs.copyFileSync(srcPath, destPath);
}
}
}
// 主函数
function main() {
const workspaceDir = path.join(__dirname, '..');
const distDir = path.join(workspaceDir, '.vitepress', 'dist');
// 查找所有图片文件夹
const imageDirs = findImageDirs(workspaceDir);
// 复制到目标目录
for (const dir of imageDirs) {
const src = path.join(workspaceDir, dir);
const dest = path.join(distDir, dir);
console.log(`Copying ${dir} to ${dest}`);
copyDir(src, dest);
}
console.log('Done!');
}
main();