git clone https://gitee.com/dcloud/uni-preset-vue
pnpm i
node -v
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
},
"lib": ["esnext", "dom"],
"types": ["@dcloudio/types"]
},
"vueCompilerOptions": {
"nativeTags": ["block", "component", "template", "slot"]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
重点代码为以下
"vueCompilerOptions": {
"nativeTags": ["block", "component", "template", "slot"]
},
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
"lib": ["esnext", "dom"],
"baseUrl": ".",
"moduleResolution": "node",
"paths": {
"@/*": ["./src/*"]
},
"types": ["@dcloudio/types", "miniprogram-api-typings", "@uni-helper/uni-app-types"],
"allowJs": true,
"sourceMap": true,
"skipLibCheck": true
},
"vueCompilerOptions": {
"nativeTags": ["block", "component", "template", "slot"]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
具体解释
配置项 | 值 | 说明 |
---|---|---|
extends | @vue/tsconfig/tsconfig.json | 继承 Vue 官方的 TypeScript 配置文件 |
compilerOptions.lib | ["esnext", "dom"] | 指定编译所需的库 |
"esnext" | 使用 ECMAScript 最新版本的功能 | |
"dom" | 包含 DOM API | |
compilerOptions.baseUrl | "." | 基础路径,通常用于解析非相对模块的导入 |
compilerOptions.moduleResolution | "node" | 指定模块解析策略,使用 Node.js 的模块解析逻辑 |
compilerOptions.paths | {"@/*": ["./src/*"]} | 模块路径别名,将 @/ 映射到 ./src/ 目录下的文件 |
compilerOptions.types | ["@dcloudio/types", "miniprogram-api-typings", "@uni-helper/uni-app-types"] | 指定要包含的类型声明文件 |
"@dcloudio/types" | 包含 DCloud 平台的类型定义 | |
"miniprogram-api-typings" | 包含小程序 API 的类型定义 | |
"@uni-helper/uni-app-types" | 包含 Uni-App 的类型定义 | |
compilerOptions.allowJs | true | 允许编译 JavaScript 文件 |
compilerOptions.sourceMap | true | 生成源映射文件 |
compilerOptions.skipLibCheck | true | 跳过库文件的类型检查 |
vueCompilerOptions.nativeTags | ["block", "component", "template", "slot"] | 指定 Vue 模板中的原生标签 |
include | ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] | 包含在编译中的文件或目录 |
"src/**/*.ts" | 包含 src 目录下所有的 .ts 文件 | |
"src/**/*.d.ts" | 包含 src 目录下所有的 .d.ts 文件 | |
"src/**/*.tsx" | 包含 src 目录下所有的 .tsx 文件 | |
"src/**/*.vue" | 包含 src 目录下所有的 .vue 文件 |
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
pnpm dev:mp-weixin
尝试修改项目,体验快捷变化
.eslintignore
文件的作用是指定 ESLint 在进行代码检查时应忽略的文件和目录。.gitignore
文件,也是类似功能,是用来忽略使用git的时候上传extensions.json
settings.json
vite.config.ts
import { resolve } from 'node:path'
import { defineConfig } from 'vite'
import Uni from '@dcloudio/vite-plugin-uni'
import AutoImport from 'unplugin-auto-import/vite'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
Uni(),
AutoImport({
dts: './src/types/auto-imports.d.ts',
imports: ['vue', 'pinia'],
dirs: ['src/utils', 'src/hooks'],
}),
],
resolve: {
alias: [
{
find: '@',
replacement: resolve(__dirname, './src'),
},
],
extensions: ['ts', 'tsx', '.json', '.vue'],
},
build: {
// 开发阶段启用源码映射:https://uniapp.dcloud.net.cn/tutorial/migration-to-vue3.html#需主动开启-sourcemap
sourcemap: process.env.NODE_ENV === 'development',
},
})
tsconfig.json
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
// 修复:替换弃用的选项
"verbatimModuleSyntax": true,
// 新增:消除弃用警告
"ignoreDeprecations": "5.0",
"lib": ["esnext", "dom"],
"baseUrl": ".",
"moduleResolution": "node",
"paths": {
"@/*": ["./src/*"]
},
"types": ["@dcloudio/types", "miniprogram-api-typings", "@uni-helper/uni-app-types"],
"allowJs": true,
"sourceMap": true,
"skipLibCheck": true
},
"vueCompilerOptions": {
// experimentalRuntimeMode 已废弃,现调整为 nativeTags,请升级 Volar 插件至最新版本
"nativeTags": ["block", "component", "template", "slot"]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
package.json
{
"name": "fuxincampusconnect",
"version": "0.0.0",
"author": {
"name": "Qiuner"
},
"keywords": [
"福信校园通"
],
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"dev:app": "uni -p app",
"dev:app-android": "uni -p app-android",
"dev:app-ios": "uni -p app-ios",
"dev:custom": "uni -p",
"dev:h5": "uni",
"dev:h5:ssr": "uni --ssr",
"dev:mp-alipay": "uni -p mp-alipay",
"dev:mp-baidu": "uni -p mp-baidu",
"dev:mp-jd": "uni -p mp-jd",
"dev:mp-kuaishou": "uni -p mp-kuaishou",
"dev:mp-lark": "uni -p mp-lark",
"dev:mp-qq": "uni -p mp-qq",
"dev:mp-toutiao": "uni -p mp-toutiao",
"dev:mp-weixin": "uni -p mp-weixin",
"dev:mp-xhs": "uni -p mp-xhs",
"dev:quickapp-webview": "uni -p quickapp-webview",
"dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
"dev:quickapp-webview-union": "uni -p quickapp-webview-union",
"build:app": "uni build -p app",
"build:app-android": "uni build -p app-android",
"build:app-ios": "uni build -p app-ios",
"build:custom": "uni build -p",
"build:h5": "uni build",
"build:h5:ssr": "uni build --ssr",
"build:mp-alipay": "uni build -p mp-alipay",
"build:mp-baidu": "uni build -p mp-baidu",
"build:mp-jd": "uni build -p mp-jd",
"build:mp-kuaishou": "uni build -p mp-kuaishou",
"build:mp-lark": "uni build -p mp-lark",
"build:mp-qq": "uni build -p mp-qq",
"build:mp-toutiao": "uni build -p mp-toutiao",
"build:mp-weixin": "uni build -p mp-weixin",
"build:mp-xhs": "uni build -p mp-xhs",
"build:quickapp-webview": "uni build -p quickapp-webview",
"build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
"build:quickapp-webview-union": "uni build -p quickapp-webview-union",
"type-check": "vue-tsc --noEmit"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-app-plus": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-components": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-h5": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-alipay": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-baidu": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-jd": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-lark": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-qq": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-toutiao": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-weixin": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-mp-xhs": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-quickapp-webview": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-ui": "^1.5.5",
"pinia": "2.0.27",
"pinia-plugin-persistedstate": "^3.2.0",
"vue": "^3.2.47",
"vue-i18n": "^9.2.2",
"vue-router": "^4.4.2"
},
"devDependencies": {
"@dcloudio/types": "^3.3.3",
"@dcloudio/uni-automator": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-cli-shared": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-stacktracey": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-vue-devtools": "3.0.0-alpha-3080220230511001",
"@dcloudio/vite-plugin-uni": "3.0.0-alpha-3081220230802001",
"@rushstack/eslint-patch": "^1.1.4",
"@types/node": "^18.11.9",
"@uni-helper/uni-app-types": "^0.5.8",
"@uni-helper/uni-ui-types": "^0.5.11",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^11.0.0",
"eslint": "^8.22.0",
"eslint-plugin-vue": "^9.3.0",
"husky": "^8.0.0",
"lint-staged": "^13.0.3",
"miniprogram-api-typings": "^3.12.0",
"prettier": "^2.7.1",
"sass": "^1.56.1",
"sass-loader": "10.1.1",
"typescript": "^5.1.6",
"unplugin-auto-import": "^0.17.6",
"vite": "^4.4.9",
"vue-tsc": "^1.8.8"
}
}
pnpm i
pnpm add unplugin-auto-import -D