-
Notifications
You must be signed in to change notification settings - Fork 169
/
build-template.js
109 lines (95 loc) · 2.65 KB
/
build-template.js
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// Populate the template that's shipped with the package using a subset of files from the example-project
import path from 'path';
import fs from 'fs-extra';
const templatePaths = [
'.npmrc',
'static/',
'sources/',
'src/app.css',
'src/app.html',
'src/global.d.ts',
'src/pages/+page.md',
'src/pages/+layout.svelte',
'src/pages/+layout.server.js',
'src/pages/+layout.js',
'src/pages/settings/',
'src/pages/api/',
'tailwind.config.cjs',
'postcss.config.cjs'
];
fs.emptyDirSync('./template/');
templatePaths.forEach((p) => {
fs.copySync(path.join('../../sites/example-project', p), path.join('./template', p));
});
fs.emptyDirSync('./template/sources');
// Create a clean SK config (workspace's is modified)
fs.outputFileSync(
'./template/svelte.config.js',
`
import evidencePreprocess from '@evidence-dev/preprocess'
import preprocess from "svelte-preprocess";
import adapter from '@sveltejs/adapter-static';
import { evidencePlugins } from '@evidence-dev/plugin-connector';
/** @type {import('@sveltejs/kit').Config} */
const config = {
extensions: ['.svelte', ".md"],
preprocess: [
...evidencePreprocess(true),
evidencePlugins(),
preprocess({
postcss: true,
}),
],
kit: {
adapter: adapter({
strict: false
}),
files: {
routes: 'src/pages',
lib: 'src/components'
}
}
};
export default config
`
);
fs.outputFileSync(
'./template/vite.config.js',
`import { sveltekit } from "@sveltejs/kit/vite"
const strictFs = (process.env.NODE_ENV === 'development') ? false : true;
/** @type {import('vite').UserConfig} */
const config =
{
plugins: [sveltekit()],
optimizeDeps: {
include: ['echarts-stat', 'echarts'],
exclude: ['svelte-icons', 'svelte-tiny-linked-charts']
},
ssr: {
external: ['@evidence-dev/db-orchestrator', '@evidence-dev/telemetry', 'blueimp-md5']
},
server: {
fs: {
strict: strictFs // allow template to get dependencies outside the .evidence folder
}
},
build: {
rollupOptions: {
external: [/^@evidence-dev\\/tailwind\\/fonts\\//]
}
}
}
export default config`
);
// Create a readme
fs.outputFileSync(
'./template/README.md',
`
# Evidence Template Project
Thank you for checking out Evidence.
## Learning More
- [Docs](https://docs.evidence.dev/)
- [Project Home Page](https://www.evidence.dev)
- [Github](https://github.com/evidence-dev/evidence)
`
);