mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-23 23:39:47 +08:00
feat(projects): 项目初始化搭建,集成eslint规范,集成代码提交规范
This commit is contained in:
83
.cz-config.js
Normal file
83
.cz-config.js
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
module.exports = {
|
||||||
|
// type 类型(定义之后,可通过上下键选择)
|
||||||
|
types: [
|
||||||
|
{ value: 'feat', name: 'feat: 新增功能' },
|
||||||
|
{ value: 'fix', name: 'fix: 修复 bug' },
|
||||||
|
{ value: 'docs', name: 'docs: 文档变更' },
|
||||||
|
{ value: 'style', name: 'style: 代码格式(不影响功能,例如空格、分号等格式修正)' },
|
||||||
|
{ value: 'refactor', name: 'refactor: 代码重构(不包括 bug 修复、功能新增)' },
|
||||||
|
{ value: 'perf', name: 'perf: 性能优化' },
|
||||||
|
{ value: 'test', name: 'test: 添加、修改测试用例' },
|
||||||
|
{ value: 'build', name: 'build: 构建流程、外部依赖变更(如升级 npm 包、修改 脚手架 配置等)' },
|
||||||
|
{ value: 'ci', name: 'ci: 修改 CI 配置、脚本' },
|
||||||
|
{ value: 'chore', name: 'chore: 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)' },
|
||||||
|
{ value: 'revert', name: 'revert: 回滚 commit' }
|
||||||
|
],
|
||||||
|
|
||||||
|
// scope 类型(定义之后,可通过上下键选择)
|
||||||
|
scopes: [
|
||||||
|
['projects', '项目搭建'],
|
||||||
|
['components', '组件相关'],
|
||||||
|
['hooks', 'hook 相关'],
|
||||||
|
['utils', 'utils 相关'],
|
||||||
|
['element-ui', '对 element-ui 的调整'],
|
||||||
|
['styles', '样式相关'],
|
||||||
|
['deps', '项目依赖'],
|
||||||
|
['auth', '对 auth 修改'],
|
||||||
|
['other', '其他修改'],
|
||||||
|
// 如果选择 custom,后面会让你再输入一个自定义的 scope。也可以不设置此项,把后面的 allowCustomScopes 设置为 true
|
||||||
|
['custom', '以上都不是?我要自定义']
|
||||||
|
].map(([value, description]) => {
|
||||||
|
return {
|
||||||
|
value,
|
||||||
|
name: `${value.padEnd(30)} (${description})`
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
// 是否允许自定义填写 scope,在 scope 选择的时候,会有 empty 和 custom 可以选择。
|
||||||
|
// allowCustomScopes: true,
|
||||||
|
|
||||||
|
// allowTicketNumber: false,
|
||||||
|
// isTicketNumberRequired: false,
|
||||||
|
// ticketNumberPrefix: 'TICKET-',
|
||||||
|
// ticketNumberRegExp: '\\d{1,5}',
|
||||||
|
|
||||||
|
|
||||||
|
// 针对每一个 type 去定义对应的 scopes,例如 fix
|
||||||
|
/*
|
||||||
|
scopeOverrides: {
|
||||||
|
fix: [
|
||||||
|
{ name: 'merge' },
|
||||||
|
{ name: 'style' },
|
||||||
|
{ name: 'e2eTest' },
|
||||||
|
{ name: 'unitTest' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 交互提示信息
|
||||||
|
messages: {
|
||||||
|
type: '确保本次提交遵循 Angular 规范!\n选择你要提交的类型:',
|
||||||
|
scope: '\n选择一个 scope(可选):',
|
||||||
|
// 选择 scope: custom 时会出下面的提示
|
||||||
|
customScope: '请输入自定义的 scope:',
|
||||||
|
subject: '填写简短精炼的变更描述:\n',
|
||||||
|
body:
|
||||||
|
'填写更加详细的变更描述(可选)。使用 "|" 换行:\n',
|
||||||
|
breaking: '列举非兼容性重大的变更(可选):\n',
|
||||||
|
footer: '列举出所有变更的 ISSUES CLOSED(可选)。 例如: #31, #34:\n',
|
||||||
|
confirmCommit: '确认提交?'
|
||||||
|
},
|
||||||
|
|
||||||
|
// 设置只有 type 选择了 feat 或 fix,才询问 breaking message
|
||||||
|
allowBreakingChanges: ['feat', 'fix'],
|
||||||
|
|
||||||
|
// 跳过要询问的步骤
|
||||||
|
// skipQuestions: ['body', 'footer'],
|
||||||
|
|
||||||
|
// subject 限制长度
|
||||||
|
subjectLimit: 100,
|
||||||
|
breaklineChar: '|', // 支持 body 和 footer
|
||||||
|
// footerPrefix : 'ISSUES CLOSED:'
|
||||||
|
// askForBreakingChangeFirst : true,
|
||||||
|
}
|
12
.editorconfig
Normal file
12
.editorconfig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Editor configuration, see http://editorconfig.org
|
||||||
|
|
||||||
|
# 表示是最顶层的 EditorConfig 配置文件
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*] # 表示所有文件适用
|
||||||
|
charset = utf-8 # 设置文件字符集为 utf-8
|
||||||
|
indent_style = tab # 缩进风格(tab | space)
|
||||||
|
indent_size = 2 # 缩进大小
|
||||||
|
end_of_line = lf # 控制换行类型(lf | cr | crlf)
|
||||||
|
trim_trailing_whitespace = true # 去除行首的任意空白字符
|
||||||
|
insert_final_newline = true # 始终在文件末尾插入一个新行
|
14
.eslintignore
Normal file
14
.eslintignore
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
*.sh
|
||||||
|
node_modules
|
||||||
|
lib
|
||||||
|
*.md
|
||||||
|
*.woff
|
||||||
|
*.ttf
|
||||||
|
.vscode
|
||||||
|
.idea
|
||||||
|
/dist/
|
||||||
|
/mock/
|
||||||
|
/public
|
||||||
|
/docs
|
||||||
|
.vscode
|
||||||
|
.local
|
20
.eslintrc.js
Normal file
20
.eslintrc.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
es2021: true
|
||||||
|
},
|
||||||
|
extends: [
|
||||||
|
'plugin:vue/vue3-essential',
|
||||||
|
'airbnb-base',
|
||||||
|
'plugin:prettier/recommended'
|
||||||
|
],
|
||||||
|
parserOptions: {
|
||||||
|
ecmaVersion: 12,
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
sourceType: 'module'
|
||||||
|
},
|
||||||
|
plugins: ['vue', '@typescript-eslint'],
|
||||||
|
rules: {
|
||||||
|
'no-unused-vars': 0
|
||||||
|
}
|
||||||
|
};
|
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
1
.husky/.gitignore
vendored
Normal file
1
.husky/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
_
|
4
.husky/commit-msg
Executable file
4
.husky/commit-msg
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
npx --no-install commitlint --edit
|
4
.husky/pre-commit
Executable file
4
.husky/pre-commit
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
yarn lint:fix
|
22
.prettierrc.js
Normal file
22
.prettierrc.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
module.exports = {
|
||||||
|
printWidth: 180, // 超过最大值换行
|
||||||
|
tabWidth: 2, // 缩进字节数
|
||||||
|
useTabs: false, // 缩进使用tab,不使用空格
|
||||||
|
semi: true, // 句尾添加分号
|
||||||
|
singleQuote: true, // 使用单引号代替双引号
|
||||||
|
proseWrap: 'preserve', // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行
|
||||||
|
arrowParens: 'avoid', // (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号
|
||||||
|
bracketSpacing: true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"
|
||||||
|
// disableLanguages: ['vue'], // 不格式化vue文件,vue文件的格式化单独设置
|
||||||
|
endOfLine: 'auto', // 结尾是 \n \r \n\r auto
|
||||||
|
eslintIntegration: false, //不让prettier使用eslint的代码格式进行校验
|
||||||
|
htmlWhitespaceSensitivity: 'ignore', // 指定HTML文件的全局空白区域敏感度 有效选项:"css"- 遵守CSS display属性的默认值。"strict" - 空格被认为是敏感的。"ignore" - 空格被认为是不敏感的。html 中空格也会占位,影响布局,prettier 格式化的时候可能会将文本换行,造成布局错乱
|
||||||
|
ignorePath: '.prettierignore', // 不使用prettier格式化的文件填写在项目的.prettierignore文件中
|
||||||
|
jsxBracketSameLine: false, // 在jsx中把'>' 是否单独放一行
|
||||||
|
jsxSingleQuote: false, // 在jsx中使用单引号代替双引号
|
||||||
|
// parser: 'babylon', // 格式化的解析器,默认是babylon
|
||||||
|
requireConfig: false, // Require a 'prettierconfig' to format prettier
|
||||||
|
stylelintIntegration: false, //不让prettier使用stylelint的代码格式进行校验
|
||||||
|
trailingComma: 'none', // 在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号)
|
||||||
|
tslintIntegration: false // 不让prettier使用tslint的代码格式进行校验
|
||||||
|
}
|
1
commitlint.config.js
Normal file
1
commitlint.config.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
module.exports = { extends: ['@commitlint/config-conventional'] };
|
140
doc/提交规范.md
Normal file
140
doc/提交规范.md
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
提交规范
|
||||||
|
前面我们已经统一代码规范,并且在提交代码时进行强约束来保证仓库代码质量。多人协作的项目中,在提交代码这个环节,也存在一种情况:不能保证每个人对提交信息的准确描述,因此会出现提交信息紊乱、风格不一致的情况。
|
||||||
|
如果 git commit 的描述信息精准,在后期维护和 Bug 处理时会变得有据可查,项目开发周期内还可以根据规范的提交信息快速生成开发日志,从而方便我们追踪项目和把控进度。
|
||||||
|
这里,我们使用社区最流行、最知名、最受认可的 Angular 团队提交规范。
|
||||||
|
|
||||||
|
commit message 格式规范
|
||||||
|
commit message 由 Header、Body、Footer 组成。
|
||||||
|
<Header>
|
||||||
|
|
||||||
|
<Body>
|
||||||
|
|
||||||
|
<Footer>
|
||||||
|
复制代码
|
||||||
|
Header
|
||||||
|
Header 部分包括三个字段 type(必需)、scope(可选)和 subject(必需)。
|
||||||
|
<type>(<scope>): <subject>
|
||||||
|
复制代码
|
||||||
|
type
|
||||||
|
type 用于说明 commit 的提交类型(必须是以下几种之一)。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
值描述feat新增一个功能fix修复一个 Bugdocs文档变更style代码格式(不影响功能,例如空格、分号等格式修正)refactor代码重构perf改善性能test测试build变更项目构建或外部依赖(例如 scopes: webpack、gulp、npm 等)ci更改持续集成软件的配置文件和 package 中的 scripts 命令,例如 scopes: Travis, Circle 等chore变更构建流程或辅助工具revert代码回退
|
||||||
|
scope
|
||||||
|
scope 用于指定本次 commit 影响的范围。scope 依据项目而定,例如在业务项目中可以依据菜单或者功能模块划分,如果是组件库开发,则可以依据组件划分。(scope 可省略)
|
||||||
|
subject
|
||||||
|
subject 是本次 commit 的简洁描述,长度约定在 50 个字符以内,通常遵循以下几个规范:
|
||||||
|
|
||||||
|
用动词开头,第一人称现在时表述,例如:change 代替 changed 或 changes
|
||||||
|
第一个字母小写
|
||||||
|
结尾不加句号(.)
|
||||||
|
|
||||||
|
Body
|
||||||
|
body 是对本次 commit 的详细描述,可以分成多行。(body 可省略)
|
||||||
|
跟 subject 类似,用动词开头,body 应该说明修改的原因和更改前后的行为对比。
|
||||||
|
Footer
|
||||||
|
如果本次提交的代码是突破性的变更或关闭缺陷,则 Footer 必需,否则可以省略。
|
||||||
|
|
||||||
|
|
||||||
|
突破性的变更
|
||||||
|
当前代码与上一个版本有突破性改变,则 Footer 以 BREAKING CHANGE 开头,后面是对变动的描述、以及变动的理由。
|
||||||
|
|
||||||
|
|
||||||
|
关闭缺陷
|
||||||
|
如果当前提交是针对特定的 issue,那么可以在 Footer 部分填写需要关闭的单个 issue 或一系列 issues。
|
||||||
|
|
||||||
|
|
||||||
|
参考例子
|
||||||
|
|
||||||
|
|
||||||
|
feat
|
||||||
|
feat(browser): onUrlChange event (popstate/hashchange/polling)
|
||||||
|
|
||||||
|
Added new event to browser:
|
||||||
|
- forward popstate event if available
|
||||||
|
- forward hashchange event if popstate not available
|
||||||
|
- do polling when neither popstate nor hashchange available
|
||||||
|
|
||||||
|
Breaks $browser.onHashChange, which was removed (use onUrlChange instead)
|
||||||
|
复制代码
|
||||||
|
|
||||||
|
|
||||||
|
fix
|
||||||
|
fix(compile): couple of unit tests for IE9
|
||||||
|
|
||||||
|
Older IEs serialize html uppercased, but IE9 does not...
|
||||||
|
Would be better to expect case insensitive, unfortunately jasmine does
|
||||||
|
not allow to user regexps for throw expectations.
|
||||||
|
|
||||||
|
Closes #392
|
||||||
|
Breaks foo.bar api, foo.baz should be used instead
|
||||||
|
复制代码
|
||||||
|
|
||||||
|
|
||||||
|
style
|
||||||
|
style(location): add couple of missing semi colons
|
||||||
|
复制代码
|
||||||
|
|
||||||
|
|
||||||
|
chore
|
||||||
|
chore(release): v3.4.2
|
||||||
|
复制代码
|
||||||
|
|
||||||
|
|
||||||
|
规范 commit message 的好处
|
||||||
|
|
||||||
|
首行就是简洁实用的关键信息,方便在 git history 中快速浏览。
|
||||||
|
具有更加详细的 body 和 footer,可以清晰的看出某次提交的目的和影响。
|
||||||
|
可以通过 type 过滤出想要查找的信息,也可以通过关键字快速查找相关提交。
|
||||||
|
可以直接从 commit 生成 change log。
|
13
index.html
Normal file
13
index.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<link rel="icon" href="/favicon.ico" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Vite App</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
45
package.json
Normal file
45
package.json
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"name": "web-cli",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "vue-tsc --noEmit && vite build",
|
||||||
|
"serve": "vite preview",
|
||||||
|
"lint:fix": "eslint --fix ./src --ext .vue,.js,jsx,.ts,tsx",
|
||||||
|
"prepare": "husky install"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.{vue,js,jsx,ts,tsx}": "eslint --fix"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"vue": "^3.0.5"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "^12.1.4",
|
||||||
|
"@commitlint/config-conventional": "^12.1.4",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
||||||
|
"@typescript-eslint/parser": "^4.25.0",
|
||||||
|
"@vitejs/plugin-vue": "^1.2.2",
|
||||||
|
"@vue/compiler-sfc": "^3.0.11",
|
||||||
|
"commitizen": "^4.2.4",
|
||||||
|
"cz-conventional-changelog": "^3.3.0",
|
||||||
|
"cz-customizable": "^6.3.0",
|
||||||
|
"eslint": "^7.27.0",
|
||||||
|
"eslint-config-airbnb-base": "^14.2.1",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-plugin-import": "^2.23.3",
|
||||||
|
"eslint-plugin-prettier": "^3.4.0",
|
||||||
|
"eslint-plugin-vue": "^7.9.0",
|
||||||
|
"husky": "^6.0.0",
|
||||||
|
"lint-staged": "^11.0.0",
|
||||||
|
"prettier": "^2.3.0",
|
||||||
|
"typescript": "^4.3.2",
|
||||||
|
"vite": "^2.3.4",
|
||||||
|
"vue-tsc": "^0.1.6"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"commitizen": {
|
||||||
|
"path": "./node_modules/cz-customizable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
19
src/App.vue
Normal file
19
src/App.vue
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<template>
|
||||||
|
<img alt="Vue logo" src="./assets/logo.png" />
|
||||||
|
<HelloWorld msg="Hello Vue 3 + TypeScript + Vite" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import HelloWorld from './components/HelloWorld.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#app {
|
||||||
|
font-family: Avenir, Helvetica, Arial, sans-serif;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
text-align: center;
|
||||||
|
color: #2c3e50;
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
</style>
|
BIN
src/assets/logo.png
Normal file
BIN
src/assets/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
71
src/components/HelloWorld.vue
Normal file
71
src/components/HelloWorld.vue
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<template>
|
||||||
|
<h1>{{ msg }}</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Recommended IDE setup:
|
||||||
|
<a href="https://code.visualstudio.com/" target="_blank">VSCode</a>
|
||||||
|
+
|
||||||
|
<a
|
||||||
|
href="https://marketplace.visualstudio.com/items?itemName=octref.vetur"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
Vetur
|
||||||
|
</a>
|
||||||
|
or
|
||||||
|
<a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>
|
||||||
|
(if using
|
||||||
|
<code><script setup></code>
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
See
|
||||||
|
<code>README.md</code>
|
||||||
|
for more information.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="https://vitejs.dev/guide/features.html" target="_blank">
|
||||||
|
Vite Docs
|
||||||
|
</a>
|
||||||
|
|
|
||||||
|
<a href="https://v3.vuejs.org/" target="_blank">Vue 3 Docs</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<button @click="count++">count is: {{ count }}</button>
|
||||||
|
<p>
|
||||||
|
Edit
|
||||||
|
<code>components/HelloWorld.vue</code>
|
||||||
|
to test hot module replacement.
|
||||||
|
</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, defineProps } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
msg: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const count = ref(0);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
a {
|
||||||
|
color: #42b983;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
margin: 0 0.5em;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
background-color: #eee;
|
||||||
|
padding: 2px 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #304455;
|
||||||
|
}
|
||||||
|
</style>
|
4
src/main.ts
Normal file
4
src/main.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import { createApp } from 'vue';
|
||||||
|
import App from './App.vue';
|
||||||
|
|
||||||
|
createApp(App).mount('#app');
|
6
src/shims-vue.d.ts
vendored
Normal file
6
src/shims-vue.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
declare module '*.vue' {
|
||||||
|
import { DefineComponent } from 'vue';
|
||||||
|
|
||||||
|
const component: DefineComponent<{}, {}, any>;
|
||||||
|
export default component;
|
||||||
|
}
|
1
src/vite-env.d.ts
vendored
Normal file
1
src/vite-env.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/// <reference types="vite/client" />
|
14
tsconfig.json
Normal file
14
tsconfig.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "esnext",
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"strict": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"sourceMap": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"lib": ["esnext", "dom"]
|
||||||
|
},
|
||||||
|
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
|
||||||
|
}
|
6
vite.config.ts
Normal file
6
vite.config.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import vue from '@vitejs/plugin-vue'
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [vue()]
|
||||||
|
})
|
Reference in New Issue
Block a user