lazy-js-utils
Version:
A collection of lazy-loaded JavaScript utilities for efficient development
53 lines (50 loc) • 1.8 kB
JavaScript
const require_chunk = require('../chunk-BCwAaXi7.cjs');
const node_process = require_chunk.__toESM(require("node:process"));
const node_path = require_chunk.__toESM(require("node:path"));
const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
//#region src/vite/vitePluginCopyHtml.ts
/**
* 将模板html内容拷贝到最终结果
* @param { string } template_url html url
* @returns Plugin
*/
async function vitePluginCopyHtml(template_url) {
let content = await node_fs_promises.default.readFile(node_path.default.resolve(node_process.default.cwd(), template_url), "utf-8");
return {
name: "vite-plugin-copy-html",
writeBundle(options, data) {
const outDir = `${options.dir}/index.html`;
const links = [];
const scripts = [];
for (const key in data) if (key.endsWith(".css")) links.push(key);
else if (key.endsWith(".js")) scripts.push(key);
if (links.length) content = content.replace(/<\/head>/, () => `</head>
${links.map((link) => `<link rel="stylesheet" href="/${link}">`)}`);
if (scripts.length) content = content.replace(/<\/body>/, () => ` ${scripts.map((script) => `<script src="/${script}" type="module"></script>`)}
</body>`);
node_fs_promises.default.writeFile(node_path.default.resolve(outDir), content, "utf-8");
}
};
}
//#endregion
//#region src/vite/vitePluginExport.ts
/**
* 将一些vite不能处理的文件导出
* @param { string } config 后缀文件
* @returns vitePlugin
*/
function vitePluginExport(config) {
return {
name: "vite-plugin-export",
transform(src, id) {
if (id.endsWith(config)) return {
code: `export default ${JSON.stringify(src)}`,
map: null
};
}
};
}
//#endregion
exports.vitePluginCopyHtml = vitePluginCopyHtml
exports.vitePluginExport = vitePluginExport
;