@farris/cli 2.0.3 → 2.1.1

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.
Files changed (125) hide show
  1. package/lib/commands/build.js +6 -7
  2. package/lib/commands/build.js.map +1 -1
  3. package/lib/commands/generate/api.js +188 -0
  4. package/lib/commands/generate/api.js.map +1 -0
  5. package/lib/commands/generate/common.js +101 -0
  6. package/lib/commands/generate/common.js.map +1 -0
  7. package/lib/commands/generate/component.js +164 -0
  8. package/lib/commands/generate/component.js.map +1 -0
  9. package/lib/commands/generate/view.js +195 -0
  10. package/lib/commands/generate/view.js.map +1 -0
  11. package/lib/commands/workspace/add-app.js +174 -0
  12. package/lib/commands/workspace/add-app.js.map +1 -0
  13. package/lib/commands/workspace/create.js +380 -0
  14. package/lib/commands/workspace/create.js.map +1 -0
  15. package/lib/commands/workspace/inspect.js +31 -0
  16. package/lib/commands/workspace/inspect.js.map +1 -0
  17. package/lib/commands/workspace/verify.js +39 -0
  18. package/lib/commands/workspace/verify.js.map +1 -0
  19. package/lib/common/constant.js +42 -1
  20. package/lib/common/constant.js.map +1 -1
  21. package/lib/common/get-vite-config.js +66 -9
  22. package/lib/common/get-vite-config.js.map +1 -1
  23. package/lib/common/output.js +95 -0
  24. package/lib/common/output.js.map +1 -0
  25. package/lib/common/safety.js +172 -0
  26. package/lib/common/safety.js.map +1 -0
  27. package/lib/common/template-renderer.js +115 -0
  28. package/lib/common/template-renderer.js.map +1 -0
  29. package/lib/common/transaction.js +84 -0
  30. package/lib/common/transaction.js.map +1 -0
  31. package/lib/common/verifier.js +147 -0
  32. package/lib/common/verifier.js.map +1 -0
  33. package/lib/config/vite-common.js +1 -1
  34. package/lib/config/vite-common.js.map +1 -1
  35. package/lib/index.js +124 -30
  36. package/lib/index.js.map +1 -1
  37. package/package.json +13 -9
  38. package/templates/workspace/app/farris.config.mjs +13 -0
  39. package/templates/{lib → workspace/app}/index.html +12 -12
  40. package/templates/workspace/app/package.json +22 -0
  41. package/templates/workspace/app/src/App.tsx +11 -0
  42. package/templates/workspace/app/src/main.ts +11 -0
  43. package/templates/workspace/app/src/router/index.ts +16 -0
  44. package/templates/workspace/app/src/styles/index.css +0 -0
  45. package/templates/workspace/app/src/styles/index.scss +0 -0
  46. package/templates/workspace/app/src/views/home/composables/use-home.ts +7 -0
  47. package/templates/workspace/app/src/views/home/home.component.tsx +15 -0
  48. package/templates/workspace/app/src/views/home/index.ts +4 -0
  49. package/templates/workspace/app/tsconfig.json +21 -0
  50. package/templates/workspace/root/README.md +28 -0
  51. package/templates/workspace/root/package.json +13 -0
  52. package/templates/workspace/root/pnpm-workspace.yaml +12 -0
  53. package/templates/lib/.eslintrc.cjs +0 -15
  54. package/templates/lib/.prettierrc.json +0 -8
  55. package/templates/lib/components/button/index.ts +0 -7
  56. package/templates/lib/components/button/src/button.component.tsx +0 -84
  57. package/templates/lib/components/button/src/button.props.ts +0 -55
  58. package/templates/lib/components/button/src/button.scss +0 -179
  59. package/templates/lib/components/common/index.ts +0 -6
  60. package/templates/lib/components/common/src/common.scss +0 -4
  61. package/templates/lib/components/common/src/compositions/index.ts +0 -19
  62. package/templates/lib/components/common/src/compositions/types.ts +0 -6
  63. package/templates/lib/components/common/src/compositions/use-bem/index.ts +0 -46
  64. package/templates/lib/components/common/src/compositions/use-click-away/index.ts +0 -40
  65. package/templates/lib/components/common/src/compositions/use-context/use-children-contexts.ts +0 -40
  66. package/templates/lib/components/common/src/compositions/use-context/use-parent-context.ts +0 -24
  67. package/templates/lib/components/common/src/compositions/use-event-listener/index.ts +0 -45
  68. package/templates/lib/components/common/src/compositions/use-expose/index.ts +0 -9
  69. package/templates/lib/components/common/src/compositions/use-lay-render/index.ts +0 -17
  70. package/templates/lib/components/common/src/compositions/use-link/index.ts +0 -14
  71. package/templates/lib/components/common/src/compositions/use-lock-scroll/index.ts +0 -25
  72. package/templates/lib/components/common/src/compositions/use-long-press/index.ts +0 -141
  73. package/templates/lib/components/common/src/compositions/use-momentum/index.ts +0 -82
  74. package/templates/lib/components/common/src/compositions/use-mount-component/index.ts +0 -48
  75. package/templates/lib/components/common/src/compositions/use-rect/index.ts +0 -31
  76. package/templates/lib/components/common/src/compositions/use-refs/index.ts +0 -21
  77. package/templates/lib/components/common/src/compositions/use-resize-observer/index.ts +0 -85
  78. package/templates/lib/components/common/src/compositions/use-resize-observer/utils.ts +0 -37
  79. package/templates/lib/components/common/src/compositions/use-scroll-parent/index.ts +0 -42
  80. package/templates/lib/components/common/src/compositions/use-touch/index.ts +0 -82
  81. package/templates/lib/components/common/src/compositions/use-touch-move/index.ts +0 -120
  82. package/templates/lib/components/common/src/entity/base-property.ts +0 -129
  83. package/templates/lib/components/common/src/entity/entity-schema.ts +0 -274
  84. package/templates/lib/components/common/src/entity/input-base-property.ts +0 -285
  85. package/templates/lib/components/common/src/style/animation/index.scss +0 -150
  86. package/templates/lib/components/common/src/style/base.scss +0 -63
  87. package/templates/lib/components/common/src/style/fonts/farris-mobile-icon.ttf +0 -0
  88. package/templates/lib/components/common/src/style/icon.scss +0 -6
  89. package/templates/lib/components/common/src/style/index.scss +0 -4
  90. package/templates/lib/components/common/src/style/mixins/bem.scss +0 -204
  91. package/templates/lib/components/common/src/style/mixins/border-radius.scss +0 -13
  92. package/templates/lib/components/common/src/style/mixins/ellipsis.scss +0 -15
  93. package/templates/lib/components/common/src/style/mixins/hairline.scss +0 -113
  94. package/templates/lib/components/common/src/style/mixins/index.scss +0 -6
  95. package/templates/lib/components/common/src/style/mixins/margin.scss +0 -10
  96. package/templates/lib/components/common/src/style/mixins/safe-area.scss +0 -9
  97. package/templates/lib/components/common/src/style/variables.scss +0 -113
  98. package/templates/lib/components/common/src/utils/index.ts +0 -15
  99. package/templates/lib/components/common/src/utils/src/common.ts +0 -83
  100. package/templates/lib/components/common/src/utils/src/date.ts +0 -134
  101. package/templates/lib/components/common/src/utils/src/dom/event.ts +0 -37
  102. package/templates/lib/components/common/src/utils/src/hook.ts +0 -18
  103. package/templates/lib/components/common/src/utils/src/number.ts +0 -26
  104. package/templates/lib/components/common/src/utils/src/query-filter.ts +0 -40
  105. package/templates/lib/components/common/src/utils/src/resove-asset.ts +0 -33
  106. package/templates/lib/components/common/src/utils/src/string.ts +0 -18
  107. package/templates/lib/components/common/src/utils/src/throttle.ts +0 -41
  108. package/templates/lib/components/common/src/utils/src/transition.ts +0 -14
  109. package/templates/lib/components/common/src/utils/src/type.ts +0 -105
  110. package/templates/lib/components/common/src/utils/src/use-appearance.ts +0 -33
  111. package/templates/lib/components/common/src/utils/src/with-install.ts +0 -16
  112. package/templates/lib/components/common/src/utils/src/with-register-designer.ts +0 -16
  113. package/templates/lib/components/common/src/utils/src/with-register.ts +0 -16
  114. package/templates/lib/components/common/types.ts +0 -131
  115. package/templates/lib/components/index.scss +0 -2
  116. package/templates/lib/components/index.ts +0 -21
  117. package/templates/lib/farris.config.mjs +0 -56
  118. package/templates/lib/package.json +0 -32
  119. package/templates/lib/src/App.vue +0 -80
  120. package/templates/lib/src/components/TheButton.vue +0 -3
  121. package/templates/lib/src/main.ts +0 -10
  122. package/templates/lib/src/router/index.ts +0 -23
  123. package/templates/lib/src/views/AboutView.vue +0 -15
  124. package/templates/lib/src/views/HomeView.vue +0 -9
  125. package/templates/lib/tsconfig.json +0 -20
@@ -1,33 +0,0 @@
1
- /**
2
- * 根据传递过来已有的类对象和自定义类名,构造新的样式对象
3
- * @param classObject
4
- * @param customClass
5
- * @returns
6
- */
7
- export function getCustomClass(classObject: Record<string, any>, customClass: string) {
8
- const customClassArray = customClass?.split(' ') || [];
9
- customClassArray.reduce((result: Record<string, boolean>, classString: string) => {
10
- if (classString) {
11
- result[classString] = true;
12
- }
13
- return result;
14
- }, classObject);
15
- return classObject;
16
- }
17
- /**
18
- * 根据传递过来已有的style对象和自定义style,构造新的style对象
19
- * @param styleObject
20
- * @param customStyle
21
- * @returns
22
- */
23
- export function getCustomStyle(styleObject: Record<string, any>, customStyle: string) {
24
- const styleArray = customStyle?.split(';') || [];
25
- styleArray.reduce((result: Record<string, any>, styleString: string) => {
26
- if (styleString) {
27
- const styles = styleString.split(':');
28
- result[styles[0]] = styles[1];
29
- }
30
- return result;
31
- }, styleObject);
32
- return styleObject;
33
- }
@@ -1,16 +0,0 @@
1
- import type { App, Component } from 'vue';
2
-
3
- export type WithInstall<T> = T & {
4
- install(app: App): void;
5
- };
6
-
7
- export function withInstall<T extends Component>(options: T) {
8
- (options as Record<string, unknown>).install = (app: App) => {
9
- const { name } = options;
10
- if (name) {
11
- app.component(name, options);
12
- }
13
- };
14
-
15
- return options as WithInstall<T>;
16
- }
@@ -1,16 +0,0 @@
1
- import type { App, Component } from 'vue';
2
-
3
- export type WithRegisterDesigner<T> = T & {
4
- registerDesigner(app: App): void;
5
- };
6
-
7
- export function withRegisterDesigner<T extends Component>(component: T, options: { name: string, designerComponent: Component, propsResolver: (schemaValue?: Record<string, any>) => Record<string, any> }) {
8
- const { name, designerComponent, propsResolver } = options;
9
-
10
- (component as Record<string, unknown>).registerDesigner = (componentMap: Record<string, any>, propsResolverMap: Record<string, any>, configResolverMap: Record<string, any>, resolverMap: Record<string, any>) => {
11
- componentMap[name] = designerComponent;
12
- propsResolverMap[name] = propsResolver;
13
- };
14
-
15
- return component as WithRegisterDesigner<T>;
16
- }
@@ -1,16 +0,0 @@
1
- import type { App, Component } from 'vue';
2
-
3
- export type WithRegister<T> = T & {
4
- register(app: App): void;
5
- };
6
-
7
- export function withRegister<T extends Component>(component: T, options: { name: string, propsResolver: (schemaValue?: Record<string, any>) => Record<string, any> }) {
8
- const { name, propsResolver } = options;
9
-
10
- (component as Record<string, unknown>).register = (componentMap: Record<string, any>, propsResolverMap: Record<string, any>, configResolverMap: Record<string, any>, resolverMap: Record<string, any>) => {
11
- componentMap[name] = component;
12
- propsResolverMap[name] = propsResolver;
13
- };
14
-
15
- return component as WithRegister<T>;
16
- }
@@ -1,131 +0,0 @@
1
- import { ComputedRef, Ref } from "vue";
2
-
3
- export interface TextBoxProps {
4
-
5
- customClass: string;
6
-
7
- disabled: boolean;
8
-
9
- editable: boolean;
10
-
11
- enableClear: boolean;
12
-
13
- enableTitle: boolean;
14
-
15
- forcePlaceholder: boolean;
16
-
17
- modelValue: string;
18
-
19
- placeholder: string;
20
-
21
- readonly: boolean;
22
-
23
- textAlign: string;
24
-
25
- showBorder: boolean;
26
-
27
- updateOn: 'blur' | 'change';
28
- }
29
-
30
- export interface UseClear {
31
-
32
- clearButtonClass: ComputedRef<Record<string, boolean>>;
33
-
34
- clearButtonStyle: ComputedRef<Record<string, any>>;
35
-
36
- hasShownClearButton: Ref<boolean>;
37
-
38
- onClearValue: ($event: MouseEvent) => void;
39
-
40
- onMouseEnter: ($event: MouseEvent) => void;
41
-
42
- onMouseLeave: ($event: MouseEvent) => void;
43
-
44
- shouldShowClearButton: ComputedRef<boolean>;
45
- }
46
-
47
- export interface UseTextBox {
48
-
49
- changeTextBoxValue: (newValue: string, shouldEmitChangeEvent: boolean) => void;
50
-
51
- disabled?: Ref<boolean>;
52
-
53
- displayText?: Ref<string>;
54
-
55
- editable?: Ref<boolean>;
56
-
57
- hasFocused?: ComputedRef<boolean>;
58
-
59
- inputGroupClass: ComputedRef<Record<string, boolean>>;
60
-
61
- inputType: Ref<string>;
62
-
63
- isEmpty: ComputedRef<boolean>;
64
-
65
- modelValue?: Ref<string>;
66
-
67
- readonly?: ComputedRef<boolean>;
68
-
69
- onBlur?: (payload: FocusEvent) => boolean;
70
-
71
- onClick?: (payload: MouseEvent) => void;
72
-
73
- onFocus?: (payload: FocusEvent) => void;
74
-
75
- onInput?: (payload: Event) => void;
76
-
77
- onKeydown?: (payload: KeyboardEvent) => void;
78
-
79
- onKeyup?: (payload: KeyboardEvent) => void;
80
-
81
- onMousedown?: (payload: MouseEvent) => void;
82
-
83
- onTextBoxValueChange?: (payload: Event) => void;
84
-
85
- placeholder: ComputedRef<string>;
86
-
87
- textBoxClass: ComputedRef<Record<string, boolean>>;
88
-
89
- textBoxTitle: ComputedRef<string>;
90
-
91
- inputGroupStyle: ComputedRef<string>;
92
- }
93
-
94
- export interface UseDateFormat {
95
- formatTo: (date: string | Date, format: string) => string;
96
- }
97
- export type NumberType = string | number;
98
- export interface NumberOption {
99
- prefix?: string;
100
- suffix?: string;
101
- decimalSeparator?: string;
102
- groupSeparator?: string;
103
- [key: string]: any;
104
- }
105
- export interface UseNumberFormat {
106
- formatTo: (value: NumberType, opts: any) => string;
107
- removeFormat: (value: NumberType | null | undefined, opts: any) => string;
108
- convertCurrency: (money: string) => string;
109
- toFixed: (value: string, precision: number) => string;
110
- toNumber: (value: string) => number;
111
- greaterThan: (firstValue: NumberType, secondValue: NumberType) => boolean;
112
- lessThan: (firstValue: NumberType, secondValue: NumberType) => boolean;
113
- equal: (firstValue: NumberType, secondValue: NumberType) => boolean;
114
- minus: (firstValue: NumberType, secondValue: NumberType) => string;
115
- multiplied: (firstValue: NumberType, secondValue: NumberType) => string;
116
- plus: (firstValue: NumberType, secondValue: NumberType) => string;
117
- average: (total: NumberType, len: number) => string;
118
- sum: (numberArray: NumberType[]) => string;
119
- min: (firstValue: Array<NumberType> | NumberType, secondValue: NumberType | null) => string;
120
- max: (firstValue: Array<NumberType> | NumberType, secondValue: NumberType | null) => string;
121
- }
122
-
123
- export type TimeAgoDate = Date | string | number;
124
- export type TimeAgoOptions = {
125
- // 可能后期有其他属性
126
- /** 相对的日期 */
127
- readonly relativeDate?: TimeAgoDate;
128
- };
129
- export interface UseTimeAgoFormat {
130
- formatTo(date: TimeAgoDate, opts?: TimeAgoOptions): string
131
- }
@@ -1,2 +0,0 @@
1
- @use './button/src/button.scss';
2
-
@@ -1,21 +0,0 @@
1
- import { App, Plugin } from 'vue';
2
- import Button from './button';
3
- export * from './common/src/utils';
4
-
5
- const components = [
6
- Button
7
- ];
8
-
9
- const install = (app: App): void => {
10
- components.forEach((component) => {
11
- app.use(component as Plugin);
12
- });
13
- };
14
-
15
- export {
16
- Button
17
- };
18
-
19
- export default {
20
- install
21
- };
@@ -1,56 +0,0 @@
1
- import { fileURLToPath, URL } from 'node:url';
2
-
3
- const { BUILD_TYPE } = process.env;
4
- const externalDependencies = BUILD_TYPE !== 'app';
5
- const externals = [BUILD_TYPE === 'components' ? "@components" : ''];
6
- const outDir = BUILD_TYPE === 'app' ? "dist" : 'package';
7
- export default {
8
- format: "<%= format %>",
9
- // 输出目录 App模式默认值 './dist' Lib模式 './lib'
10
- // outDir: fileURLToPath(new URL('./dist', import.meta.url)),
11
- // 压缩代码 默认值 true
12
- minify: true,
13
- // 外部依赖排除项 默认值 { include: [], exclude: [] }
14
- // externals: {
15
- // include: [],
16
- // exclude: []
17
- // },
18
- externals: {
19
- include: externals,
20
- filter: (externals) => {
21
- return (id) => {
22
- return externals.find((item) => item && id.indexOf(item) === 0);
23
- };
24
- }
25
- },
26
- // 是否排除 package.json 中 dependencies和 peerDependencies 依赖的包; App模式默认值 false Lib模式默认值 true
27
- externalDependencies,
28
- // 路径别名 默认值 null
29
- alias: [
30
- { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) },
31
- { find: '@components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }
32
- ],
33
- // 打包后产物路径
34
- outDir: fileURLToPath(new URL(`./${outDir}`, import.meta.url)),
35
- // 开发者模式 本地启动服务
36
- server: {
37
- proxy: {
38
- "/api": {
39
- target: "http://localhost:5173",
40
- changeOrigin: true,
41
- secure: false
42
- }
43
- }
44
- },
45
- lib: {
46
- entry: fileURLToPath(new URL('./components/index.ts', import.meta.url)),
47
- name: "",
48
- fileName: "index",
49
- formats: ["esm", 'umd', 'systemjs'],
50
- },
51
- target: 'es2015',
52
- // 插件 默认值 [vue(), vueJsx()] 不要重复添加
53
- // plugins: [],
54
- // viteConfig 配置项
55
- viteConfig: {}
56
- };
@@ -1,32 +0,0 @@
1
- {
2
- "name": "<%= name %>",
3
- "version": "0.0.0",
4
- "private": true,
5
- "type": "module",
6
- "scripts": {
7
- "dev": "farris-cli dev",
8
- "preview": "farris-cli preview",
9
- "build": "npm run build:lib && npm run build:css && npm run build:components",
10
- "build:lib": "farris-cli build-lib -ep",
11
- "build:components": "farris-cli build-components",
12
- "build:css": "farris-cli build-css -e ./components/index.scss -o ./package/index.css --minify",
13
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
14
- "format": "prettier --write src/"
15
- },
16
- "dependencies": {
17
- "@farris/ui-vue": "latest",
18
- "vue": "^3.4.29",
19
- "vue-router": "^4.3.0"
20
- },
21
- "devDependencies": {
22
- "@farris/cli": "<%= cliVersion %>",
23
- "@rushstack/eslint-patch": "^1.8.0",
24
- "@vue/eslint-config-prettier": "^9.0.0",
25
- "@vue/eslint-config-typescript": "^13.0.0",
26
- "@vue/tsconfig": "^0.5.1",
27
- "eslint": "^8.57.0",
28
- "eslint-plugin-vue": "^9.23.0",
29
- "prettier": "^3.2.5",
30
- "typescript": "~5.4.0"
31
- }
32
- }
@@ -1,80 +0,0 @@
1
- <script setup lang="ts">
2
- import { RouterLink, RouterView } from 'vue-router';
3
- </script>
4
-
5
- <template>
6
- <header>
7
- <div class="wrapper">
8
- <nav>
9
- <RouterLink to="/">Home</RouterLink>
10
- <RouterLink to="/about">About</RouterLink>
11
- </nav>
12
- </div>
13
- </header>
14
-
15
- <RouterView />
16
- </template>
17
-
18
- <style scoped>
19
- header {
20
- line-height: 1.5;
21
- max-height: 100vh;
22
- }
23
-
24
- .logo {
25
- display: block;
26
- margin: 0 auto 2rem;
27
- }
28
-
29
- nav {
30
- width: 100%;
31
- font-size: 12px;
32
- text-align: center;
33
- margin-top: 2rem;
34
- }
35
-
36
- nav a.router-link-exact-active {
37
- color: var(--color-text);
38
- }
39
-
40
- nav a.router-link-exact-active:hover {
41
- background-color: transparent;
42
- }
43
-
44
- nav a {
45
- display: inline-block;
46
- padding: 0 1rem;
47
- border-left: 1px solid var(--color-border);
48
- }
49
-
50
- nav a:first-of-type {
51
- border: 0;
52
- }
53
-
54
- @media (min-width: 1024px) {
55
- header {
56
- display: flex;
57
- place-items: center;
58
- padding-right: calc(var(--section-gap) / 2);
59
- }
60
-
61
- .logo {
62
- margin: 0 2rem 0 0;
63
- }
64
-
65
- header .wrapper {
66
- display: flex;
67
- place-items: flex-start;
68
- flex-wrap: wrap;
69
- }
70
-
71
- nav {
72
- text-align: left;
73
- margin-left: -1rem;
74
- font-size: 1rem;
75
-
76
- padding: 1rem 0;
77
- margin-top: 1rem;
78
- }
79
- }
80
- </style>
@@ -1,3 +0,0 @@
1
- <template>
2
- <f-button>按钮</f-button>
3
- </template>
@@ -1,10 +0,0 @@
1
- import { createApp } from 'vue';
2
- import FarrisVue from '@farris/ui-vue';
3
- import App from './App.vue';
4
- import router from './router';
5
-
6
- const app = createApp(App);
7
-
8
- app.use(router).use(FarrisVue);
9
-
10
- app.mount('#app');
@@ -1,23 +0,0 @@
1
- import { createRouter, createWebHistory } from 'vue-router';
2
- import HomeView from '../views/HomeView.vue';
3
-
4
- const router = createRouter({
5
- history: createWebHistory(import.meta.env.BASE_URL),
6
- routes: [
7
- {
8
- path: '/',
9
- name: 'home',
10
- component: HomeView
11
- },
12
- {
13
- path: '/about',
14
- name: 'about',
15
- // route level code-splitting
16
- // this generates a separate chunk (About.[hash].js) for this route
17
- // which is lazy-loaded when the route is visited.
18
- component: () => import('../views/AboutView.vue')
19
- }
20
- ]
21
- });
22
-
23
- export default router;
@@ -1,15 +0,0 @@
1
- <template>
2
- <div class="about">
3
- <h1>This is an about page</h1>
4
- </div>
5
- </template>
6
-
7
- <style>
8
- @media (min-width: 1024px) {
9
- .about {
10
- min-height: 100vh;
11
- display: flex;
12
- align-items: center;
13
- }
14
- }
15
- </style>
@@ -1,9 +0,0 @@
1
- <script setup lang="ts">
2
- import TheButton from '../components/TheButton.vue';
3
- </script>
4
-
5
- <template>
6
- <main>
7
- <TheButton />
8
- </main>
9
- </template>
@@ -1,20 +0,0 @@
1
- {
2
- "include": [
3
- "src/**/*",
4
- "components/**/*",
5
- ],
6
- "compilerOptions": {
7
- "composite": true,
8
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
9
- "baseUrl": ".",
10
- "jsx": "preserve",
11
- "paths": {
12
- "@/*": [
13
- "./*"
14
- ],
15
- "@components/*": [
16
- "./components/*"
17
- ]
18
- }
19
- }
20
- }