lazy-js-utils
Version:
A collection of lazy-loaded JavaScript utilities for efficient development
61 lines (56 loc) • 1.92 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/vite/vitePluginCopyHtml.ts
var _promises = require('fs/promises'); var _promises2 = _interopRequireDefault(_promises);
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
var _process = require('process'); var _process2 = _interopRequireDefault(_process);
async function vitePluginCopyHtml(template_url) {
let content = await _promises2.default.readFile(
_path2.default.resolve(_process2.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>`
);
}
_promises2.default.writeFile(_path2.default.resolve(outDir), content, "utf-8");
}
};
}
// src/vite/vitePluginExport.ts
function vitePluginExport(config) {
return {
name: "vite-plugin-export",
transform(src, id) {
if (id.endsWith(config)) {
return {
code: `export default ${JSON.stringify(src)}`,
map: null
};
}
}
};
}
exports.vitePluginCopyHtml = vitePluginCopyHtml; exports.vitePluginExport = vitePluginExport;
;