27 lines
669 B
TypeScript
27 lines
669 B
TypeScript
import { defineConfig } from 'vite';
|
|
import { compile } from "ejs";
|
|
import { readFile } from "node:fs/promises";
|
|
import { relative, resolve } from "node:path";
|
|
import { cloudflare } from '@cloudflare/vite-plugin';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
{
|
|
name: 'ejs',
|
|
async transform(_, id) {
|
|
if (id.endsWith('.ejs')) {
|
|
const src = await readFile(id, 'utf-8');
|
|
const code = compile(src, {
|
|
client: true,
|
|
strict: true,
|
|
localsName: 'data',
|
|
views: [resolve(__dirname, 'templates')],
|
|
filename: relative(__dirname, id),
|
|
}).toString();
|
|
return `export default ${code}`;
|
|
}
|
|
},
|
|
},
|
|
cloudflare(),
|
|
],
|
|
});
|