加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vite-plugins.ts 1.73 KB
一键复制 编辑 原始数据 按行查看 历史
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;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化