Skip to content

Commit 853624f

Browse files
chore: wip
1 parent 71c0cf3 commit 853624f

File tree

5 files changed

+573
-22
lines changed

5 files changed

+573
-22
lines changed

.stacks/core/build/src/desktop.ts

Lines changed: 141 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,152 @@
1+
import path from 'node:path'
12
import { defineConfig } from 'vite'
2-
import { server } from '@stacksjs/server'
3-
import { cssEngine, uiEngine } from './'
3+
import Vue from '@vitejs/plugin-vue'
4+
import Pages from 'vite-plugin-pages'
5+
import generateSitemap from 'vite-ssg-sitemap'
6+
import Components from 'unplugin-vue-components/vite'
7+
import AutoImport from 'unplugin-auto-import/vite'
8+
import Markdown from 'vite-plugin-vue-markdown'
9+
import { VitePWA } from 'vite-plugin-pwa'
10+
import Inspect from 'vite-plugin-inspect'
11+
import LinkAttributes from 'markdown-it-link-attributes'
12+
import Unocss from '@unocss/vite'
13+
import Shiki from 'markdown-it-shiki'
414

515
export default defineConfig({
16+
resolve: {
17+
alias: {
18+
'~/': `${path.resolve(__dirname, '../../../../')}/`,
19+
},
20+
},
621
clearScreen: false,
722

8-
server,
23+
server: {
24+
port: 3333,
25+
strictPort: true,
26+
},
27+
envPrefix: ['VITE_', 'TAURI_'],
28+
plugins: [
929

10-
envPrefix: 'APP_',
30+
Vue({
31+
include: [/\.vue$/, /\.md$/],
32+
reactivityTransform: true,
33+
}),
34+
35+
// https://github.com/hannoeru/vite-plugin-pages
36+
Pages({
37+
extensions: ['vue', 'md'],
38+
}),
39+
40+
// https://github.com/antfu/unplugin-auto-import
41+
AutoImport({
42+
imports: [
43+
'vue',
44+
'vue-router',
45+
'vue-i18n',
46+
'vue/macros',
47+
'@vueuse/head',
48+
'@vueuse/core',
49+
],
50+
dts: '../../../auto-imports.d.ts',
51+
dirs: [
52+
'../../../../functions',
53+
'../../../../app/stores',
54+
],
55+
vueTemplate: true,
56+
}),
57+
58+
// https://github.com/antfu/unplugin-vue-components
59+
Components({
60+
// allow auto load markdown components under `./src/components/`
61+
extensions: ['vue', 'md'],
62+
// allow auto import and register components used in markdown
63+
include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
64+
dts: '../../../../components',
65+
}),
66+
67+
// https://github.com/antfu/unocss
68+
// see unocss.config.ts for config
69+
Unocss({
70+
configFile: '../../ui/src/unocss.config.ts',
71+
mode: 'vue-scoped',
72+
}),
73+
74+
// https://github.com/antfu/vite-plugin-vue-markdown
75+
// Don't need this? Try vitesse-lite: https://github.com/antfu/vitesse-lite
76+
Markdown({
77+
wrapperClasses: 'prose prose-sm m-auto text-left',
78+
headEnabled: true,
79+
markdownItSetup(md) {
80+
// https://prismjs.com/
81+
md.use(Shiki, {
82+
theme: {
83+
light: 'vitesse-light',
84+
dark: 'vitesse-dark',
85+
},
86+
})
87+
md.use(LinkAttributes, {
88+
matcher: (link: string) => /^https?:\/\//.test(link),
89+
attrs: {
90+
target: '_blank',
91+
rel: 'noopener',
92+
},
93+
})
94+
},
95+
}),
96+
97+
// https://github.com/antfu/vite-plugin-pwa
98+
VitePWA({
99+
registerType: 'autoUpdate',
100+
includeAssets: ['favicon.ico', 'safari-pinned-tab.svg'],
101+
manifest: {
102+
name: 'Vitesse',
103+
short_name: 'Vitesse',
104+
theme_color: '#ffffff',
105+
icons: [
106+
{
107+
src: '/pwa-192x192.png',
108+
sizes: '192x192',
109+
type: 'image/png',
110+
},
111+
{
112+
src: '/pwa-512x512.png',
113+
sizes: '512x512',
114+
type: 'image/png',
115+
},
116+
{
117+
src: '/pwa-512x512.png',
118+
sizes: '512x512',
119+
type: 'image/png',
120+
purpose: 'any maskable',
121+
},
122+
],
123+
},
124+
}),
125+
126+
// https://github.com/antfu/vite-plugin-inspect
127+
// Visit http://localhost:3333/__inspect/ to see the inspector
128+
Inspect(),
11129

12-
plugins: [
13-
uiEngine(),
14-
cssEngine(),
15130
],
16131

17-
build: {
18-
target: ['es2021', 'chrome97', 'safari13'],
19-
minify: !process.env.APP_DEBUG ? 'esbuild' : false,
20-
sourcemap: !!process.env.APP_DEBUG,
132+
// https://github.com/vitest-dev/vitest
133+
test: {
134+
include: ['test/**/*.test.ts'],
135+
environment: 'jsdom',
136+
deps: {
137+
inline: ['@vue', '@vueuse', 'vue-demi'],
138+
},
139+
},
140+
141+
// https://github.com/antfu/vite-ssg
142+
ssgOptions: {
143+
script: 'async',
144+
formatting: 'minify',
145+
onFinished() { generateSitemap() },
146+
},
147+
148+
ssr: {
149+
// TODO: workaround until they support native ESM
150+
noExternal: ['workbox-window', /vue-i18n/],
21151
},
22152
})

.stacks/core/ui/src/unocss.config.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import {
2+
defineConfig,
3+
presetAttributify,
4+
presetIcons,
5+
presetTypography,
6+
presetUno,
7+
presetWebFonts,
8+
presetWind,
9+
transformerDirectives,
10+
transformerVariantGroup,
11+
} from 'unocss'
12+
13+
import { presetForms } from '@julr/unocss-preset-forms'
14+
15+
export default defineConfig({
16+
shortcuts: [
17+
['btn', 'px-4 py-1 rounded inline-block bg-teal-700 text-white cursor-pointer hover:bg-teal-800 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],
18+
['icon-btn', 'inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-teal-600'],
19+
],
20+
presets: [
21+
presetForms(),
22+
presetUno(),
23+
presetWind(),
24+
presetAttributify(),
25+
presetIcons({
26+
scale: 1.2,
27+
warn: true,
28+
}),
29+
presetTypography(),
30+
presetWebFonts({
31+
fonts: {
32+
serif: 'DM Serif Display',
33+
mono: 'DM Mono',
34+
},
35+
}),
36+
],
37+
rules: [
38+
['bg-carefree-green-1', { background: '#86C83A' }],
39+
['text-carefree-green-1', { color: '#86C83A' }],
40+
['bg-carefree-blue-1', { background: '#0085BF' }],
41+
['text-carefree-blue-1', { color: '#0085BF' }],
42+
],
43+
transformers: [
44+
transformerDirectives(),
45+
transformerVariantGroup(),
46+
],
47+
safelist: 'prose prose-sm m-auto text-left'.split(' '),
48+
})

.stacks/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
"update:all": "pnpm buddy update:all",
7878
"dev:components": "vite serve ../../components/vue -c ../build/src/vue-components.ts",
7979
"dev:core": "pnpm --filter '../core/**' --filter '!../buddy/' dev",
80-
"dev:desktop": "wip",
80+
"dev:desktop": "vite serve ../../components/vue -c ../build/src/desktop.ts",
8181
"dev:docs": "buddy dev:docs",
8282
"dev:pages": "nitro dev",
8383
"dev:functions": "pnpm buddy dev:functions",

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,5 +109,8 @@
109109
"commitizen": {
110110
"path": ".stacks/node_modules/cz-git"
111111
}
112+
},
113+
"devDependencies": {
114+
"@tauri-apps/cli": "^1.2.3"
112115
}
113116
}

0 commit comments

Comments
 (0)