初始化:添加项目基础配置文件

- 添加Git配置文件(.gitignore, .gitattributes)
- 添加编辑器配置(.editorconfig)
- 添加包管理器配置(.npmrc, package.json)
- 添加依赖锁定文件(package-lock.json, pnpm-lock.yaml)
- 添加TypeScript配置(tsconfig.json)
This commit is contained in:
Leo 2025-10-08 02:22:45 +08:00
commit 22712b4bfb
7 changed files with 10315 additions and 0 deletions

9
.editorconfig Normal file
View File

@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

16
.gitattributes vendored Normal file
View File

@ -0,0 +1,16 @@
"*.vue" eol=lf
"*.js" eol=lf
"*.ts" eol=lf
"*.jsx" eol=lf
"*.tsx" eol=lf
"*.cjs" eol=lf
"*.cts" eol=lf
"*.mjs" eol=lf
"*.mts" eol=lf
"*.json" eol=lf
"*.html" eol=lf
"*.css" eol=lf
"*.less" eol=lf
"*.scss" eol=lf
"*.sass" eol=lf
"*.styl" eol=lf

32
.gitignore vendored Normal file
View File

@ -0,0 +1,32 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
stats.html
# Editor directories and files
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
components.d.ts
auto-imports.d.ts
# Lock files
*-lock.yaml

4
.npmrc Normal file
View File

@ -0,0 +1,4 @@
registry=https://registry.npmmirror.com/
shamefully-hoist=true
strict-peer-dependencies=false
auto-install-peers=true

10135
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

94
package.json Normal file
View File

@ -0,0 +1,94 @@
{
"name": "coi-admin",
"type": "module",
"version": "0.9.15",
"private": true,
"description": "a clean and concise back-end management template based on Vue3, Vite5, Typescript, and Naive UI.",
"author": {
"name": "chansee97",
"email": "chen.dev@foxmail.com",
"url": "https://github.com/chansee97"
},
"license": "MIT",
"homepage": "https://github.com/chansee97/nova-admin",
"repository": {
"url": "https://github.com/chansee97/nova-admin.git"
},
"bugs": {
"url": "https://github.com/chansee97/nova-admin/issues"
},
"keywords": [
"Vue",
"Vue3",
"admin",
"admin-template",
"vue-admin",
"vue-admin-template",
"Vite5",
"Vite",
"vite-admin",
"TypeScript",
"TS",
"NaiveUI",
"naive-ui",
"naive-admin",
"NaiveUI-Admin",
"naive-ui-admin",
"UnoCSS"
],
"scripts": {
"dev": "vite --mode dev --port 9980",
"dev:test": "vite --mode test",
"dev:prod": "vite --mode prod",
"build": "vite build --mode prod",
"build:dev": "vite build --mode dev",
"build:test": "vite build --mode test",
"preview": "vite preview --port 9981",
"lint": "eslint . && vue-tsc --noEmit",
"lint:fix": "eslint . --fix",
"lint:check": "npx @eslint/config-inspector",
"sizecheck": "npx vite-bundle-visualizer"
},
"dependencies": {
"@vueuse/core": "^13.3.0",
"alova": "^3.3.2",
"colord": "^2.9.3",
"pinia": "^3.0.3",
"pinia-plugin-persistedstate": "^4.3.0",
"radash": "^12.1.0",
"vue": "^3.5.16",
"vue-i18n": "^11.1.5",
"vue-router": "^4.5.1"
},
"devDependencies": {
"@antfu/eslint-config": "^4.14.1",
"@iconify-json/carbon": "^1.2.10",
"@iconify-json/icon-park-outline": "^1.2.2",
"@iconify/vue": "^4.3.0",
"@types/node": "^24.0.1",
"@vitejs/plugin-vue": "^5.2.4",
"@vitejs/plugin-vue-jsx": "^4.2.0",
"eslint": "^9.29.0",
"lint-staged": "^16.1.2",
"md-editor-v3": "^5.6.1",
"naive-ui": "^2.41.1",
"sass": "^1.86.3",
"simple-git-hooks": "^2.13.0",
"typescript": "^5.8.3",
"unocss": "^66.2.0",
"unplugin-auto-import": "^19.3.0",
"unplugin-icons": "^22.1.0",
"unplugin-vue-components": "^28.7.0",
"vite": "^6.3.5",
"vite-bundle-visualizer": "^1.2.1",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-vue-devtools": "7.7.6",
"vue-tsc": "^2.2.10"
},
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged"
},
"lint-staged": {
"*": "eslint --fix"
}
}

25
tsconfig.json Normal file
View File

@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ESNext",
"jsx": "preserve",
"jsxImportSource": "vue",
"lib": ["ESNext", "DOM"],
"baseUrl": ".",
"module": "ESNext",
"moduleResolution": "node",
"paths": {
"@/*": ["src/*"]
},
"resolveJsonModule": true,
"types": ["node", "vite/client", "naive-ui/volar", "unplugin-icons/types/vue"],
"allowJs": true,
"strict": true,
"strictNullChecks": true,
"noUnusedLocals": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"skipLibCheck": true
},
"exclude": ["node_modules", "dist"]
}