-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
57 lines (56 loc) · 1.62 KB
/
vite.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import { defineConfig } from "vite";
import { resolve } from "path";
import fs from "fs";
// https://vitejs.dev/config/
export default defineConfig({
build: {
lib: {
entry: resolve(__dirname, "src/index.ts"),
name: "plugin-template",
fileName: (format) => "script.js",
formats: ["es"],
},
outDir: "dist",
rollupOptions: {
external: [/caido:.+/],
output: {
manualChunks: undefined,
},
plugins: [
{
name: "Render Workflow",
generateBundle: async function generateBundle(options, bundle) {
const script = bundle["script.js"];
if (script && script.type === "chunk") {
const templatePath = resolve(__dirname, "workflow.template.json");
const template = await fs.promises.readFile(
templatePath,
"utf-8",
);
const workflow = template.replace(
'"[REPLACE_SCRIPT]"',
JSON.stringify(script.code),
);
this.emitFile({
fileName: "workflow.json",
source: workflow,
type: "asset",
});
}
},
},
{
name: "Banner",
banner: async function generateBanner() {
const pkg = require(resolve(__dirname, "package.json"));
return `/** \n * @preserve\n * Bundle of '${
pkg.name
}'\n * Generated: ${new Date().toISOString()}\n * Version: ${
pkg.version
}\n**/`;
},
},
],
},
},
});