mirror your GitHub repos to tangled.org automatically
1import { defineConfig } from 'vite-plus'
2import { defineVitestProject } from '@nuxt/test-utils/config'
3import { playwright } from 'vite-plus/test/browser-playwright'
4
5const rootDir = import.meta.dirname
6
7export default defineConfig({
8 resolve: {
9 alias: {
10 '#server': `${rootDir}/server`,
11 },
12 },
13 lint: {
14 plugins: ['typescript', 'vue', 'oxc', 'unicorn', 'vitest'],
15 jsPlugins: ['@stylistic/eslint-plugin'],
16 categories: {
17 correctness: 'error',
18 suspicious: 'warn',
19 perf: 'warn',
20 },
21 options: {
22 typeAware: true,
23 typeCheck: true,
24 },
25 rules: {
26 '@stylistic/quotes': ['error', 'single', { avoidEscape: true, allowTemplateLiterals: 'always' }],
27 '@stylistic/semi': ['error', 'never'],
28 '@stylistic/comma-dangle': ['error', 'always-multiline'],
29 '@stylistic/indent': ['error', 2],
30 '@stylistic/no-trailing-spaces': 'error',
31 '@stylistic/eol-last': ['error', 'always'],
32 '@stylistic/object-curly-spacing': ['error', 'always'],
33 '@stylistic/arrow-parens': ['error', 'as-needed'],
34 },
35 ignorePatterns: [
36 '.output/**',
37 '.data/**',
38 '.nuxt/**',
39 '.nitro/**',
40 '.cache/**',
41 'dist/**',
42 'node_modules/**',
43 'coverage/**',
44 'playwright-report/**',
45 'test-results/**',
46 ],
47 },
48 test: {
49 projects: [
50 {
51 test: {
52 name: 'unit',
53 include: ['test/unit/*.{test,spec}.ts'],
54 environment: 'node',
55 },
56 },
57 () =>
58 defineVitestProject({
59 test: {
60 name: 'nuxt',
61 include: ['test/nuxt/*.{test,spec}.ts'],
62 environment: 'nuxt',
63 environmentOptions: {
64 nuxt: {
65 rootDir,
66 overrides: {
67 ogImage: { enabled: false },
68 },
69 },
70 },
71 browser: {
72 enabled: true,
73 provider: playwright(),
74 instances: [
75 { browser: 'chromium' },
76 ],
77 },
78 },
79 }),
80 ],
81 coverage: {
82 enabled: true,
83 provider: 'v8',
84 },
85 },
86})