-
Notifications
You must be signed in to change notification settings - Fork 0
/
buildComponents.mjs
72 lines (67 loc) · 1.92 KB
/
buildComponents.mjs
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Inspired by https://www.raulmelo.dev/blog/build-javascript-library-with-multiple-entry-points-using-vite-3
import { build } from 'vite';
import { fileURLToPath } from 'url';
import path from 'path';
import svelte from 'rollup-plugin-svelte';
import { terser } from 'rollup-plugin-terser';
import preprocess from 'svelte-preprocess';
import fs from 'fs';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const outDir = './src/lib/compiled';
const components = ['Web3WalletMenu.svelte'];
export const buildComponents = async () => {
// build the data field app that goes inside the contract data field to reolve the did/tag
console.log('Building components...');
for (const ComponentName of components) {
console.log(`Building ${ComponentName}...`);
await build({
configFile: false,
build: {
outDir,
lib: {
entry: path.resolve(__dirname, `./src/lib/${ComponentName}`), // use package so the typescript and css is already preprocessed for us
fileName: ComponentName,
name: ComponentName
},
emptyOutDir: false,
minify: true,
sourcemap: false,
rollupOptions: {
output: [
{
sourcemap: false,
format: 'es',
dir: outDir,
manualChunks: false,
inlineDynamicImports: true,
name: 'app',
compact: true,
plugins: [terser()]
}
],
plugins: [
svelte({
emitCss: false,
preprocess: preprocess({
postcss: {
// use @import when building packages for distribution
configFilePath: path.resolve(__dirname, './postcss.config.js'),
prependData: `@import '${path.resolve('./src/utilities.css')}';`
}
})
}),
terser()
]
}
}
});
console.log(`Built ${ComponentName}!`);
}
// process.exit(0);
};
(async () => {
console.log('Starting Individual Component build');
await buildComponents();
console.log('Done');
process.exit(0);
})();