createDirectory 方法
实现思路:
判断
components-page
目录是否存在,不存在就直接新建一个目录即可存在就需要删除上次的构建产物
目录
/src
/components-page
文件
index.html
package.json
vite.config.js
components-page.zip'
都要删掉
实现代码
点击 展开/收起 jsx 代码
import fs from 'fs';
import path from 'path';
function deleteFolderRecursive(folderPath) {
if (fs.existsSync(folderPath)) {
fs.readdirSync(folderPath).forEach((file, index) => {
const curPath = path.join(folderPath, file);
if (fs.lstatSync(curPath).isDirectory()) {
// 递归删除文件夹
deleteFolderRecursive(curPath);
} else {
// 删除文件
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(folderPath);
}
}
function createDirectory(directoryName) {
const directoryPath = path.join(process.cwd(), directoryName);
console.log('------------------------------------------------------------');
if (fs.existsSync(directoryPath)) {
console.log(`目录 ${directoryName} 已存在,正在清理...`);
// 需要删除的目录
const deleteDir = [
path.join(directoryPath, 'src'),
path.join(directoryPath, 'dist'),
];
for (const dir of deleteDir) {
if (fs.existsSync(dir)) {
deleteFolderRecursive(dir);
console.log(`删除目录:${dir}`);
}
}
// 需要删除的文件
const deleteFiles = [
path.join(directoryPath, 'index.html'),
path.join(directoryPath, 'package.json'),
path.join(directoryPath, 'vite.config.js'),
path.join(directoryPath, 'dist.zip'),
];
for (const file of deleteFiles) {
if (fs.existsSync(file)) {
fs.unlinkSync(file);
console.log(`删除文件:${file}`);
}
}
} else {
fs.mkdirSync(directoryPath);
console.log(`创建目录:${directoryPath}`);
}
}
export default createDirectory;