markdown/scripts/copy-deps.js

67 lines
1.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import fs from 'fs';
import path from 'path';
/**
* 复制tree-kill依赖到dist目录
* 确保uTools插件运行时能够正确找到tree-kill模块
*/
function copyTreeKillDeps() {
const distDir = path.join(process.cwd(), 'dist');
const nodeModulesDir = path.join(process.cwd(), 'node_modules');
// 确保dist目录存在
if (!fs.existsSync(distDir)) {
console.error('dist目录不存在请先运行构建命令');
return;
}
// 复制tree-kill依赖
const treeKillSource = path.join(nodeModulesDir, 'tree-kill');
const treeKillDest = path.join(distDir, 'node_modules', 'tree-kill');
if (fs.existsSync(treeKillSource)) {
// 创建目标目录
const destDir = path.dirname(treeKillDest);
if (!fs.existsSync(destDir)) {
fs.mkdirSync(destDir, { recursive: true });
}
// 复制tree-kill目录
copyDirectory(treeKillSource, treeKillDest);
console.log('✅ tree-kill依赖已复制到dist目录');
} else {
console.error('❌ tree-kill依赖不存在请先安装依赖');
}
}
/**
* 递归复制目录
* @param {string} source 源目录路径
* @param {string} destination 目标目录路径
*/
function copyDirectory(source, destination) {
// 创建目标目录
if (!fs.existsSync(destination)) {
fs.mkdirSync(destination, { recursive: true });
}
// 读取源目录内容
const items = fs.readdirSync(source);
items.forEach(item => {
const sourcePath = path.join(source, item);
const destPath = path.join(destination, item);
const stat = fs.statSync(sourcePath);
if (stat.isDirectory()) {
// 递归复制子目录
copyDirectory(sourcePath, destPath);
} else {
// 复制文件
fs.copyFileSync(sourcePath, destPath);
}
});
}
// 执行复制操作
copyTreeKillDeps();