commit
023c2e376a
21 changed files with 5077 additions and 0 deletions
@ -0,0 +1,24 @@ |
||||
# Logs |
||||
logs |
||||
*.log |
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
pnpm-debug.log* |
||||
lerna-debug.log* |
||||
|
||||
node_modules |
||||
dist |
||||
dist-ssr |
||||
*.local |
||||
|
||||
# Editor directories and files |
||||
.vscode/* |
||||
!.vscode/extensions.json |
||||
.idea |
||||
.DS_Store |
||||
*.suo |
||||
*.ntvs* |
||||
*.njsproj |
||||
*.sln |
||||
*.sw? |
@ -0,0 +1,7 @@ |
||||
/dist/* |
||||
/html/* |
||||
.local |
||||
/node_modules/** |
||||
**/*.svg |
||||
**/*.sh |
||||
/public/* |
@ -0,0 +1,9 @@ |
||||
{ |
||||
"singleQuote": true, |
||||
"semi": false, |
||||
"bracketSpacing": true, |
||||
"htmlWhitespaceSensitivity": "ignore", |
||||
"endOfLine": "auto", |
||||
"trailingComma": "all", |
||||
"tabWidth": 2 |
||||
} |
@ -0,0 +1,4 @@ |
||||
/node_modules/* |
||||
/dist/* |
||||
/html/* |
||||
/public/* |
@ -0,0 +1,53 @@ |
||||
// @see https://stylelint.bootcss.com/ |
||||
|
||||
module.exports = { |
||||
extends: [ |
||||
'stylelint-config-standard', // 配置stylelint拓展插件 |
||||
'stylelint-config-html/vue', // 配置 vue 中 template 样式格式化 |
||||
'stylelint-config-standard-scss', // 配置stylelint scss插件 |
||||
'stylelint-config-recommended-vue/scss', // 配置 vue 中 scss 样式格式化 |
||||
'stylelint-config-recess-order', // 配置stylelint css属性书写顺序插件, |
||||
'stylelint-config-prettier', // 配置stylelint和prettier兼容 |
||||
], |
||||
overrides: [ |
||||
{ |
||||
files: ['**/*.(scss|css|vue|html)'], |
||||
customSyntax: 'postcss-scss', |
||||
}, |
||||
{ |
||||
files: ['**/*.(html|vue)'], |
||||
customSyntax: 'postcss-html', |
||||
}, |
||||
], |
||||
ignoreFiles: [ |
||||
'**/*.js', |
||||
'**/*.jsx', |
||||
'**/*.tsx', |
||||
'**/*.ts', |
||||
'**/*.json', |
||||
'**/*.md', |
||||
'**/*.yaml', |
||||
], |
||||
/** |
||||
* null => 关闭该规则 |
||||
* always => 必须 |
||||
*/ |
||||
rules: { |
||||
'value-keyword-case': null, // 在 css 中使用 v-bind,不报错 |
||||
'no-descending-specificity': null, // 禁止在具有较高优先级的选择器后出现被其覆盖的较低优先级的选择器 |
||||
'function-url-quotes': 'always', // 要求或禁止 URL 的引号 "always(必须加上引号)"|"never(没有引号)" |
||||
'no-empty-source': null, // 关闭禁止空源码 |
||||
'selector-class-pattern': null, // 关闭强制选择器类名的格式 |
||||
'property-no-unknown': null, // 禁止未知的属性(true 为不允许) |
||||
'block-opening-brace-space-before': 'always', //大括号之前必须有一个空格或不能有空白符 |
||||
'value-no-vendor-prefix': null, // 关闭 属性值前缀 --webkit-box |
||||
'property-no-vendor-prefix': null, // 关闭 属性前缀 -webkit-mask |
||||
'selector-pseudo-class-no-unknown': [ |
||||
// 不允许未知的选择器 |
||||
true, |
||||
{ |
||||
ignorePseudoClasses: ['global', 'v-deep', 'deep'], // 忽略属性,修改element默认样式的时候能使用到 |
||||
}, |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,3 @@ |
||||
{ |
||||
"recommendations": ["Vue.volar"] |
||||
} |
@ -0,0 +1,5 @@ |
||||
# Vue 3 + TypeScript + Vite |
||||
|
||||
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. |
||||
|
||||
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). |
@ -0,0 +1,29 @@ |
||||
module.exports = { |
||||
extends: ['@commitlint/config-conventional'], |
||||
// 校验规则 |
||||
rules: { |
||||
'type-enum': [ |
||||
2, |
||||
'always', |
||||
[ |
||||
'feat', |
||||
'fix', |
||||
'docs', |
||||
'style', |
||||
'refactor', |
||||
'perf', |
||||
'test', |
||||
'chore', |
||||
'revert', |
||||
'build', |
||||
], |
||||
], |
||||
'type-case': [0], |
||||
'type-empty': [0], |
||||
'scope-empty': [0], |
||||
'scope-case': [0], |
||||
'subject-full-stop': [0, 'never'], |
||||
'subject-case': [0, 'never'], |
||||
'header-max-length': [0, 'always', 72], |
||||
}, |
||||
} |
@ -0,0 +1,17 @@ |
||||
import globals from 'globals' |
||||
import pluginJs from '@eslint/js' |
||||
import tseslint from 'typescript-eslint' |
||||
import pluginVue from 'eslint-plugin-vue' |
||||
|
||||
/** @type {import('eslint').Linter.Config[]} */ |
||||
export default [ |
||||
{ files: ['**/*.{js,mjs,cjs,ts,vue}'] }, |
||||
{ languageOptions: { globals: globals.browser } }, |
||||
pluginJs.configs.recommended, |
||||
...tseslint.configs.recommended, |
||||
...pluginVue.configs['flat/essential'], |
||||
{ |
||||
files: ['**/*.vue'], |
||||
languageOptions: { parserOptions: { parser: tseslint.parser } }, |
||||
}, |
||||
] |
@ -0,0 +1,13 @@ |
||||
<!doctype html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8" /> |
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
<title>运营平台管理系统</title> |
||||
</head> |
||||
<body> |
||||
<div id="app"></div> |
||||
<script type="module" src="/src/main.ts"></script> |
||||
</body> |
||||
</html> |
@ -0,0 +1,56 @@ |
||||
{ |
||||
"name": "project", |
||||
"private": true, |
||||
"version": "0.0.0", |
||||
"type": "module", |
||||
"scripts": { |
||||
"dev": "vite --open", |
||||
"build": "vue-tsc -b && vite build", |
||||
"preview": "vite preview", |
||||
"lint": "eslint src", |
||||
"fix": "eslint src --fix", |
||||
"format": "prettier --write \"./**/*.{html,vue,ts,js,json,md}\"", |
||||
"lint:eslint": "eslint src/**/*.{ts,vue} --cache --fix", |
||||
"lint:style": "stylelint src/**/*.{css,scss,vue} --cache --fix", |
||||
"prepare": "husky install", |
||||
"commitlint": "commitlint --config commitlint.config.cjs -e -V", |
||||
"preinstall": "node ./scripts/preinstall.js" |
||||
}, |
||||
"dependencies": { |
||||
"vue": "^3.5.12" |
||||
}, |
||||
"devDependencies": { |
||||
"@babel/eslint-parser": "^7.25.9", |
||||
"@commitlint/cli": "^19.5.0", |
||||
"@commitlint/config-conventional": "^19.5.0", |
||||
"@eslint/js": "^9.14.0", |
||||
"@vitejs/plugin-vue": "^5.1.4", |
||||
"eslint": "^9.14.0", |
||||
"eslint-config-prettier": "^9.1.0", |
||||
"eslint-plugin-import": "^2.31.0", |
||||
"eslint-plugin-node": "^11.1.0", |
||||
"eslint-plugin-prettier": "^5.2.1", |
||||
"eslint-plugin-vue": "^9.30.0", |
||||
"globals": "^15.12.0", |
||||
"husky": "^8.0.0", |
||||
"postcss": "^8.4.47", |
||||
"postcss-html": "^1.7.0", |
||||
"postcss-scss": "^4.0.9", |
||||
"prettier": "^3.3.3", |
||||
"sass": "^1.80.6", |
||||
"sass-loader": "^16.0.3", |
||||
"stylelint": "^16.10.0", |
||||
"stylelint-config-prettier": "^9.0.5", |
||||
"stylelint-config-recess-order": "^5.1.1", |
||||
"stylelint-config-recommended-scss": "^14.1.0", |
||||
"stylelint-config-standard": "^36.0.1", |
||||
"stylelint-config-standard-scss": "^13.1.0", |
||||
"stylelint-config-standard-vue": "^1.0.0", |
||||
"stylelint-order": "^6.0.4", |
||||
"stylelint-scss": "^6.8.1", |
||||
"typescript": "~5.6.2", |
||||
"typescript-eslint": "^8.13.0", |
||||
"vite": "^5.4.10", |
||||
"vue-tsc": "^2.1.8" |
||||
} |
||||
} |
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,7 @@ |
||||
if (!/pnpm/.test(process.env.npm_execpath || '')) { |
||||
console.warn( |
||||
`\u001b[33mThis repository must using pnpm as the package manager ` + |
||||
` for scripts to work properly.\u001b[39m\n`, |
||||
) |
||||
process.exit(1) |
||||
} |
@ -0,0 +1,17 @@ |
||||
<script setup lang="ts"></script> |
||||
|
||||
<template> |
||||
<div class="box"> |
||||
<h1>我是APP页面</h1> |
||||
</div> |
||||
</template> |
||||
|
||||
<style scoped lang="scss"> |
||||
.box { |
||||
width: 200px; |
||||
height: 200px; |
||||
h1 { |
||||
color: skyblue; |
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,6 @@ |
||||
import { createApp } from 'vue' |
||||
import App from './App.vue' |
||||
|
||||
const app = createApp(App) |
||||
|
||||
app.mount('#app') |
@ -0,0 +1 @@ |
||||
/// <reference types="vite/client" />
|
@ -0,0 +1,26 @@ |
||||
{ |
||||
"compilerOptions": { |
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", |
||||
"target": "ES2020", |
||||
"useDefineForClassFields": true, |
||||
"module": "ESNext", |
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"], |
||||
"skipLibCheck": true, |
||||
|
||||
/* Bundler mode */ |
||||
"moduleResolution": "Bundler", |
||||
"allowImportingTsExtensions": true, |
||||
"isolatedModules": true, |
||||
"moduleDetection": "force", |
||||
"noEmit": true, |
||||
"jsx": "preserve", |
||||
|
||||
/* Linting */ |
||||
"strict": true, |
||||
"noUnusedLocals": true, |
||||
"noUnusedParameters": true, |
||||
"noFallthroughCasesInSwitch": true, |
||||
"noUncheckedSideEffectImports": true |
||||
}, |
||||
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] |
||||
} |
@ -0,0 +1,7 @@ |
||||
{ |
||||
"files": [], |
||||
"references": [ |
||||
{ "path": "./tsconfig.app.json" }, |
||||
{ "path": "./tsconfig.node.json" } |
||||
] |
||||
} |
@ -0,0 +1,24 @@ |
||||
{ |
||||
"compilerOptions": { |
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", |
||||
"target": "ES2022", |
||||
"lib": ["ES2023"], |
||||
"module": "ESNext", |
||||
"skipLibCheck": true, |
||||
|
||||
/* Bundler mode */ |
||||
"moduleResolution": "Bundler", |
||||
"allowImportingTsExtensions": true, |
||||
"isolatedModules": true, |
||||
"moduleDetection": "force", |
||||
"noEmit": true, |
||||
|
||||
/* Linting */ |
||||
"strict": true, |
||||
"noUnusedLocals": true, |
||||
"noUnusedParameters": true, |
||||
"noFallthroughCasesInSwitch": true, |
||||
"noUncheckedSideEffectImports": true |
||||
}, |
||||
"include": ["vite.config.ts"] |
||||
} |
@ -0,0 +1,8 @@ |
||||
//配置代理跨域等
|
||||
import { defineConfig } from 'vite' |
||||
import vue from '@vitejs/plugin-vue' |
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({ |
||||
plugins: [vue()], |
||||
}) |
Loading…
Reference in new issue