Files
2026-10-08 22:38:34 +08:00

46 lines
1.6 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { readFileSync } from 'node:fs'
import { fileURLToPath } from 'node:url'
import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vite'
/**
* 组件 playground —— E2E(Playwright)与人工/ AI 手测共用的宿主页面。
*
* 只有两个用途:把组件跑在真实浏览器里、给每个可交互元素一个稳定的 data-testid。
* 不参与打包(files 只发布 dist),也不影响组件库构建。
*/
const configScssPath = fileURLToPath(new URL('../../tokens/src/scss/_config.scss', import.meta.url))
const configScss = readFileSync(configScssPath, 'utf-8')
function readScssDefault(name: string, fallback: string): string {
const match = configScss.match(new RegExp(`\\$${name}\\s*:\\s*['"]([^'"]+)['"]\\s*!default`))
return match ? match[1] : fallback
}
export default defineConfig({
root: fileURLToPath(new URL('.', import.meta.url)),
plugins: [vue()],
resolve: {
alias: [
{
find: /^@g3soft\/ui$/,
replacement: fileURLToPath(new URL('../src/index.ts', import.meta.url)),
},
{
find: /^@g3soft\/tokens$/,
replacement: fileURLToPath(new URL('../../tokens/dist/index.css', import.meta.url)),
},
{ find: /^vue$/, replacement: 'vue/dist/vue.esm-bundler.js' },
],
},
css: {
preprocessorOptions: { scss: { api: 'modern-compiler' } },
},
define: {
__G3_NAMESPACE__: JSON.stringify(readScssDefault('namespace', 'g3')),
__G3_STATE_PREFIX__: JSON.stringify(readScssDefault('state-prefix', 'is')),
},
server: { port: 5200, strictPort: true },
})