create-vixt 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 SoulLyoko
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.mjs ADDED
@@ -0,0 +1,55 @@
1
+ import path from 'node:path';
2
+ import process from 'node:process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { cac } from 'cac';
5
+ import fs from 'fs-extra';
6
+
7
+ const version = "0.2.0";
8
+
9
+ const __dirname = fileURLToPath(new URL(".", import.meta.url));
10
+ const argv = cac().parse();
11
+ const projectName = argv.args[0] || "vixt-project";
12
+ const templateName = argv.options.template || "monorepo-ts";
13
+ const cwd = process.cwd();
14
+ const projectPath = path.join(cwd, projectName);
15
+ const templatePath = path.join(__dirname, `../template-${templateName}`);
16
+ if (!fs.existsSync(templatePath)) {
17
+ console.error(`"${templateName}" isn't a valid template. Please confirm the template name.`);
18
+ process.exit(1);
19
+ }
20
+ if (!fs.existsSync(projectPath)) {
21
+ fs.mkdirSync(projectPath);
22
+ console.log(`Project directory ${projectName} created.`);
23
+ } else {
24
+ console.error(`Directory ${projectName} already exists.`);
25
+ process.exit(1);
26
+ }
27
+ function editPackageJson(destDir, fn) {
28
+ const packageJsonPath = path.join(destDir, "package.json");
29
+ const packageJson = fs.readJsonSync(packageJsonPath);
30
+ const result = fn(packageJson) || packageJson;
31
+ fs.writeJSONSync(packageJsonPath, result, { spaces: 2 });
32
+ }
33
+ function copyTemplateFiles(srcDir, destDir) {
34
+ fs.copySync(srcDir, destDir);
35
+ editPackageJson(destDir, (json) => {
36
+ json.name = projectName;
37
+ json.dependencies.vixt = `^${version}`;
38
+ });
39
+ }
40
+ copyTemplateFiles(templatePath, projectPath);
41
+ if (templateName === "monorepo-ts") {
42
+ const vueTemplatePath = path.join(__dirname, `../template-vue-ts`);
43
+ const vueProjectPath = path.join(projectPath, "packages/vue");
44
+ fs.copySync(vueTemplatePath, vueProjectPath);
45
+ editPackageJson(vueProjectPath, (json) => {
46
+ delete json.dependencies.vixt;
47
+ });
48
+ const uniTemplatePath = path.join(__dirname, `../template-uni-ts`);
49
+ const uniProjectPath = path.join(projectPath, "packages/uni");
50
+ fs.copySync(uniTemplatePath, uniProjectPath);
51
+ editPackageJson(uniProjectPath, (json) => {
52
+ delete json.dependencies.vixt;
53
+ });
54
+ }
55
+ console.log("Template project initialized.");
package/index.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ // eslint-disable-next-line antfu/no-import-dist
4
+ import './dist/index.mjs'
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "create-vixt",
3
+ "type": "module",
4
+ "version": "0.2.0",
5
+ "bin": {
6
+ "create-vixt": "index.js"
7
+ },
8
+ "files": [
9
+ "dist",
10
+ "index.js",
11
+ "template-*"
12
+ ],
13
+ "dependencies": {
14
+ "cac": "^6.7.14",
15
+ "fs-extra": "^11.3.0"
16
+ },
17
+ "scripts": {
18
+ "build": "unbuild"
19
+ }
20
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "vixt-monorepo-ts",
3
+ "type": "module",
4
+ "version": "0.0.0",
5
+ "private": true,
6
+ "scripts": {
7
+ "build": "pnpm -F vue build",
8
+ "build:h5": "pnpm -F uni build:h5",
9
+ "dev": "pnpm -F vue dev",
10
+ "dev:h5": "pnpm -F uni dev"
11
+ },
12
+ "dependencies": {
13
+ "vixt": "workspace:*"
14
+ }
15
+ }
@@ -0,0 +1,2 @@
1
+ packages:
2
+ - packages/*
File without changes
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "vixt-uni-ts",
3
+ "type": "module",
4
+ "version": "0.0.0",
5
+ "private": true,
6
+ "scripts": {
7
+ "dev:h5": "uni",
8
+ "dev:h5:ssr": "uni --ssr",
9
+ "dev:mp": "uni -p mp-weixin",
10
+ "build:h5": "uni build",
11
+ "build:h5:ssr": "uni build --ssr",
12
+ "build:mp": "uni build -p mp-weixin"
13
+ },
14
+ "dependencies": {
15
+ "@dcloudio/uni-app": "3.0.0-alpha-4050420250306001",
16
+ "@dcloudio/uni-app-plus": "3.0.0-alpha-4050420250306001",
17
+ "@dcloudio/uni-h5": "3.0.0-alpha-4050420250306001",
18
+ "@dcloudio/uni-mp-weixin": "3.0.0-alpha-4050420250306001",
19
+ "vixt": "workspace:*"
20
+ },
21
+ "devDependencies": {
22
+ "@dcloudio/vite-plugin-uni": "3.0.0-alpha-4050420250306001"
23
+ }
24
+ }
@@ -0,0 +1,11 @@
1
+ import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages'
2
+
3
+ export default defineUniPages({
4
+ pages: [],
5
+ easycom: {
6
+ autoscan: true,
7
+ },
8
+ globalStyle: {
9
+ navigationBarTitleText: 'uni-app',
10
+ },
11
+ })
@@ -0,0 +1,11 @@
1
+ <script setup lang="ts">
2
+ onLaunch(() => {
3
+ console.log('App Launch')
4
+ })
5
+ onShow(() => {
6
+ console.log('App Show')
7
+ })
8
+ onHide(() => {
9
+ console.log('App Hide')
10
+ })
11
+ </script>
File without changes
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "",
3
+ "appid": "",
4
+ "description": "",
5
+ "versionName": "1.0.0",
6
+ "versionCode": "100",
7
+ "transformPx": false,
8
+ /* 5+App特有相关 */
9
+ "app-plus": {
10
+ "usingComponents": true,
11
+ "nvueStyleCompiler": "uni-app",
12
+ "compilerVersion": 3,
13
+ "splashscreen": {
14
+ "alwaysShowBeforeRender": true,
15
+ "waiting": true,
16
+ "autoclose": true,
17
+ "delay": 0
18
+ },
19
+ /* 模块配置 */
20
+ "modules": {},
21
+ /* 应用发布信息 */
22
+ "distribute": {
23
+ /* android打包配置 */
24
+ "android": {
25
+ "permissions": [
26
+ "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
27
+ "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
28
+ "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
29
+ "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
30
+ "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
31
+ "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
32
+ "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
33
+ "<uses-permission android:name=\"android.permission.CAMERA\"/>",
34
+ "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
35
+ "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
36
+ "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
37
+ "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
38
+ "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
39
+ "<uses-feature android:name=\"android.hardware.camera\"/>",
40
+ "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
41
+ ]
42
+ },
43
+ /* ios打包配置 */
44
+ "ios": {},
45
+ /* SDK配置 */
46
+ "sdkConfigs": {}
47
+ }
48
+ },
49
+ /* 快应用特有相关 */
50
+ "quickapp": {},
51
+ /* 小程序特有相关 */
52
+ "mp-weixin": {
53
+ "appid": "",
54
+ "setting": {
55
+ "urlCheck": false
56
+ },
57
+ "usingComponents": true
58
+ },
59
+ "mp-alipay": {
60
+ "usingComponents": true
61
+ },
62
+ "mp-baidu": {
63
+ "usingComponents": true
64
+ },
65
+ "mp-toutiao": {
66
+ "usingComponents": true
67
+ },
68
+ "uniStatistics": {
69
+ "enable": false
70
+ },
71
+ "vueVersion": "3"
72
+ }
@@ -0,0 +1,42 @@
1
+ <script setup lang="ts">
2
+ const title = ref('Hello')
3
+ </script>
4
+
5
+ <template>
6
+ <view class="content">
7
+ <image class="logo" src="/static/logo.png" />
8
+ <view class="text-area">
9
+ <text class="title">
10
+ {{ title }}
11
+ </text>
12
+ </view>
13
+ </view>
14
+ </template>
15
+
16
+ <style>
17
+ .content {
18
+ display: flex;
19
+ flex-direction: column;
20
+ align-items: center;
21
+ justify-content: center;
22
+ }
23
+
24
+ .logo {
25
+ height: 200rpx;
26
+ width: 200rpx;
27
+ margin-top: 200rpx;
28
+ margin-left: auto;
29
+ margin-right: auto;
30
+ margin-bottom: 50rpx;
31
+ }
32
+
33
+ .text-area {
34
+ display: flex;
35
+ justify-content: center;
36
+ }
37
+
38
+ .title {
39
+ font-size: 36rpx;
40
+ color: #8f8f94;
41
+ }
42
+ </style>
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 这里是uni-app内置的常用样式变量
3
+ *
4
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
5
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
6
+ *
7
+ */
8
+
9
+ /**
10
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
11
+ *
12
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
13
+ */
14
+
15
+ /* 颜色变量 */
16
+
17
+ /* 行为相关颜色 */
18
+ $uni-color-primary: #007aff;
19
+ $uni-color-success: #4cd964;
20
+ $uni-color-warning: #f0ad4e;
21
+ $uni-color-error: #dd524d;
22
+
23
+ /* 文字基本颜色 */
24
+ $uni-text-color: #333; // 基本色
25
+ $uni-text-color-inverse: #fff; // 反色
26
+ $uni-text-color-grey: #999; // 辅助灰色,如加载更多的提示信息
27
+ $uni-text-color-placeholder: #808080;
28
+ $uni-text-color-disable: #c0c0c0;
29
+
30
+ /* 背景颜色 */
31
+ $uni-bg-color: #fff;
32
+ $uni-bg-color-grey: #f8f8f8;
33
+ $uni-bg-color-hover: #f1f1f1; // 点击状态颜色
34
+ $uni-bg-color-mask: rgba(0, 0, 0, 0.4); // 遮罩颜色
35
+
36
+ /* 边框颜色 */
37
+ $uni-border-color: #c8c7cc;
38
+
39
+ /* 尺寸变量 */
40
+
41
+ /* 文字尺寸 */
42
+ $uni-font-size-sm: 12px;
43
+ $uni-font-size-base: 14px;
44
+ $uni-font-size-lg: 16;
45
+
46
+ /* 图片尺寸 */
47
+ $uni-img-size-sm: 20px;
48
+ $uni-img-size-base: 26px;
49
+ $uni-img-size-lg: 40px;
50
+
51
+ /* Border Radius */
52
+ $uni-border-radius-sm: 2px;
53
+ $uni-border-radius-base: 3px;
54
+ $uni-border-radius-lg: 6px;
55
+ $uni-border-radius-circle: 50%;
56
+
57
+ /* 水平间距 */
58
+ $uni-spacing-row-sm: 5px;
59
+ $uni-spacing-row-base: 10px;
60
+ $uni-spacing-row-lg: 15px;
61
+
62
+ /* 垂直间距 */
63
+ $uni-spacing-col-sm: 4px;
64
+ $uni-spacing-col-base: 8px;
65
+ $uni-spacing-col-lg: 12px;
66
+
67
+ /* 透明度 */
68
+ $uni-opacity-disabled: 0.3; // 组件禁用态的透明度
69
+
70
+ /* 文章场景相关 */
71
+ $uni-color-title: #2c405a; // 文章标题颜色
72
+ $uni-font-size-title: 20px;
73
+ $uni-color-subtitle: #555; // 二级标题颜色
74
+ $uni-font-size-subtitle: 18px;
75
+ $uni-color-paragraph: #3f536e; // 文章段落颜色
76
+ $uni-font-size-paragraph: 15px;
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "./.vixt/tsconfig.json"
3
+ }
@@ -0,0 +1,6 @@
1
+ import vixt from '@vixt/uni'
2
+ import { defineConfig } from 'vite'
3
+
4
+ export default defineConfig({
5
+ plugins: [vixt()],
6
+ })
@@ -0,0 +1,3 @@
1
+ import { defineVixtConfig } from '@vixt/core'
2
+
3
+ export default defineVixtConfig({})
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["Vue.volar"]
3
+ }
@@ -0,0 +1,5 @@
1
+ # Vue 3 + TypeScript + Vite
2
+
3
+ This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
File without changes
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "vixt-vue-ts",
3
+ "type": "module",
4
+ "version": "0.0.0",
5
+ "private": true,
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "vixt": "workspace:*"
13
+ }
14
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import HelloWorld from './components/HelloWorld.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div>
7
+ <a href="https://vite.dev" target="_blank">
8
+ <img src="/vite.svg" class="logo" alt="Vite logo">
9
+ </a>
10
+ <a href="https://vuejs.org/" target="_blank">
11
+ <img src="/vue.svg" class="logo vue" alt="Vue logo">
12
+ </a>
13
+ </div>
14
+ <HelloWorld msg="Vite + Vue" />
15
+ </template>
16
+
17
+ <style scoped>
18
+ .logo {
19
+ height: 6em;
20
+ padding: 1.5em;
21
+ will-change: filter;
22
+ transition: filter 300ms;
23
+ }
24
+ .logo:hover {
25
+ filter: drop-shadow(0 0 2em #646cffaa);
26
+ }
27
+ .logo.vue:hover {
28
+ filter: drop-shadow(0 0 2em #42b883aa);
29
+ }
30
+ </style>
@@ -0,0 +1,42 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue'
3
+
4
+ defineProps<{ msg: string }>()
5
+
6
+ const count = ref(0)
7
+ </script>
8
+
9
+ <template>
10
+ <h1>{{ msg }}</h1>
11
+
12
+ <div class="card">
13
+ <button type="button" @click="count++">
14
+ count is {{ count }}
15
+ </button>
16
+ <p>
17
+ Edit
18
+ <code>components/HelloWorld.vue</code> to test HMR
19
+ </p>
20
+ </div>
21
+
22
+ <p>
23
+ Check out
24
+ <a href="https://vuejs.org/guide/quick-start.html#local" target="_blank">create-vue</a>, the official Vue + Vite starter
25
+ </p>
26
+ <p>
27
+ Learn more about IDE Support for Vue in the
28
+ <a
29
+ href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
30
+ target="_blank"
31
+ >Vue Docs Scaling up Guide</a>.
32
+ </p>
33
+ <p class="read-the-docs">
34
+ Click on the Vite and Vue logos to learn more
35
+ </p>
36
+ </template>
37
+
38
+ <style scoped>
39
+ .read-the-docs {
40
+ color: #888;
41
+ }
42
+ </style>
File without changes
@@ -0,0 +1,79 @@
1
+ :root {
2
+ font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
3
+ line-height: 1.5;
4
+ font-weight: 400;
5
+
6
+ color-scheme: light dark;
7
+ color: rgba(255, 255, 255, 0.87);
8
+ background-color: #242424;
9
+
10
+ font-synthesis: none;
11
+ text-rendering: optimizeLegibility;
12
+ -webkit-font-smoothing: antialiased;
13
+ -moz-osx-font-smoothing: grayscale;
14
+ }
15
+
16
+ a {
17
+ font-weight: 500;
18
+ color: #646cff;
19
+ text-decoration: inherit;
20
+ }
21
+ a:hover {
22
+ color: #535bf2;
23
+ }
24
+
25
+ body {
26
+ margin: 0;
27
+ display: flex;
28
+ place-items: center;
29
+ min-width: 320px;
30
+ min-height: 100vh;
31
+ }
32
+
33
+ h1 {
34
+ font-size: 3.2em;
35
+ line-height: 1.1;
36
+ }
37
+
38
+ button {
39
+ border-radius: 8px;
40
+ border: 1px solid transparent;
41
+ padding: 0.6em 1.2em;
42
+ font-size: 1em;
43
+ font-weight: 500;
44
+ font-family: inherit;
45
+ background-color: #1a1a1a;
46
+ cursor: pointer;
47
+ transition: border-color 0.25s;
48
+ }
49
+ button:hover {
50
+ border-color: #646cff;
51
+ }
52
+ button:focus,
53
+ button:focus-visible {
54
+ outline: 4px auto -webkit-focus-ring-color;
55
+ }
56
+
57
+ .card {
58
+ padding: 2em;
59
+ }
60
+
61
+ #app {
62
+ max-width: 1280px;
63
+ margin: 0 auto;
64
+ padding: 2rem;
65
+ text-align: center;
66
+ }
67
+
68
+ @media (prefers-color-scheme: light) {
69
+ :root {
70
+ color: #213547;
71
+ background-color: #ffffff;
72
+ }
73
+ a:hover {
74
+ color: #747bff;
75
+ }
76
+ button {
77
+ background-color: #f9f9f9;
78
+ }
79
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "./.vixt/tsconfig.json"
3
+ }
@@ -0,0 +1,6 @@
1
+ import vixt from '@vixt/vue'
2
+ import { defineConfig } from 'vite'
3
+
4
+ export default defineConfig({
5
+ plugins: [vixt()],
6
+ })
@@ -0,0 +1,7 @@
1
+ import { defineVixtConfig } from '@vixt/core'
2
+
3
+ export default defineVixtConfig({
4
+ app: {
5
+ css: ['@/style.css'],
6
+ },
7
+ })