web build

This commit is contained in:
nicwands
2026-02-16 16:17:14 -05:00
parent 94cf443725
commit c436488f9d
5 changed files with 110 additions and 87 deletions

View File

@@ -4,9 +4,8 @@ on:
push: push:
branches: branches:
- main - main
# pull_request: tags:
# release: - 'v*'
# types: [created]
jobs: jobs:
build: build:

View File

@@ -1,48 +1,16 @@
import { resolve } from 'path' import { resolve } from 'path'
import { defineConfig } from 'electron-vite' import { defineConfig } from 'electron-vite'
import vue from '@vitejs/plugin-vue' import { sharedConfig } from './vite.shared'
import { toSass } from './src/renderer/src/libs/sass-utils'
import theme from './src/renderer/src/libs/theme'
export default defineConfig({ export default defineConfig({
main: {}, main: {},
preload: {}, preload: {},
renderer: { renderer: {
plugins: [vue()], ...sharedConfig,
resolve: { resolve: {
alias: { alias: {
'@': resolve('src/renderer/src'), '@': resolve('src/renderer/src'),
}, },
}, },
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler',
additionalData:
'@use "/src/styles/_functions.scss" as *; @use "/src/styles/_font-style.scss" as *;',
functions: {
'get($keys)': function (keys) {
keys = keys
.toString()
.replace(/['"]+/g, '')
.split('.')
let result = theme
for (let i = 0; i < keys.length; i++) {
result = result[keys[i]]
}
return toSass(result)
},
'getColors()': function () {
return toSass(theme.colors)
},
'getThemes()': function () {
return toSass(theme.themes)
},
},
},
},
},
}, },
}) })

View File

@@ -14,7 +14,9 @@
"format": "prettier --write .", "format": "prettier --write .",
"start": "electron-vite preview", "start": "electron-vite preview",
"dev": "electron-vite dev", "dev": "electron-vite dev",
"dev:web": "vite",
"build": "electron-vite build", "build": "electron-vite build",
"build:web": "vite build",
"postinstall": "electron-builder install-app-deps", "postinstall": "electron-builder install-app-deps",
"build:unpack": "npm run build && electron-builder --dir", "build:unpack": "npm run build && electron-builder --dir",
"build:win": "npm run build && electron-builder --win", "build:win": "npm run build && electron-builder --win",

20
vite.config.js Normal file
View File

@@ -0,0 +1,20 @@
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import { sharedConfig } from './vite.shared'
export default defineConfig({
...sharedConfig,
root: 'src/renderer',
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
server: {
port: 3000,
},
build: {
outDir: '../../dist/renderer',
},
})

34
vite.shared.js Normal file
View File

@@ -0,0 +1,34 @@
import vue from '@vitejs/plugin-vue'
import { toSass } from './src/renderer/src/libs/sass-utils'
import theme from './src/renderer/src/libs/theme'
export const sharedConfig = {
plugins: [vue()],
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler',
additionalData:
'@use "/src/styles/_functions.scss" as *; @use "/src/styles/_font-style.scss" as *;',
functions: {
'get($keys)': function (keys) {
keys = keys.toString().replace(/['"]+/g, '').split('.')
let result = theme
for (let i = 0; i < keys.length; i++) {
result = result[keys[i]]
}
return toSass(result)
},
'getColors()': function () {
return toSass(theme.colors)
},
'getThemes()': function () {
return toSass(theme.themes)
},
},
},
},
},
}