代码拉取完成,页面将自动刷新
import * as fs from 'fs';
import * as path from 'path';
import {Plugin} from 'vite';
// 读取指定目录并找到所有以 .map 结尾的文件
function findMapFiles(dir: string): Promise<string[]> {
return new Promise((resolve, reject) => {
fs.readdir(dir, (err, files) => {
if (err) {
return reject(err);
}
const mapFiles = files.filter(file => file.endsWith('.map')).map(file => path.join(dir, file));
resolve(mapFiles);
});
});
}
// 创建文件夹的函数
function createDir(dirPath: string): Promise<string> {
return new Promise((resolve, reject) => {
fs.mkdir(dirPath, {recursive: true}, (err) => {
if (err) {
return reject(err);
}
resolve(dirPath);
});
});
}
// 移动文件的函数
function moveFile(source: string, destination: string): Promise<string> {
return new Promise((resolve, reject) => {
fs.rename(source, destination, (err) => {
if (err) {
return reject(err);
}
resolve(destination);
});
});
}
//
/** 自定义 Vite 插件
* 移动 .map 文件
* @param outputDir
* @param mapDir
*/
export function moveMapFilesPlugin(
outputDir: string,
mapDir: string
): Plugin {
const res: Plugin = {
name: 'move-map-files',
async writeBundle() {
await createDir(mapDir);
await Promise.all(
(await findMapFiles(outputDir)).map(async (mapFile) => {
const newMapFile = mapFile.replace(outputDir, mapDir);
await moveFile(mapFile, newMapFile);
})
);
}
};
return res;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。