这里的创建使用用vue3+ts版本,如过是vue2,具体可参考官网命令
uni-app官网
`npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project`
`pnpm i -D miniprogram-api-typings @uni-helper/uni-app-types`
tsconfig.json
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
},
"lib": ["esnext", "dom"],
// 类型声明文件
"types": [
"@dcloudio/types", // uni-app API 类型
"miniprogram-api-typings", // 原生微信小程序类型
"@uni-helper/uni-app-types" // uni-app 组件类型
]
},
// vue 编译器类型,校验标签类型
"vueCompilerOptions": {
// 原配置 `experimentalRuntimeMode` 现调整为 `nativeTags`
"nativeTags": ["block", "component", "template", "slot"], // [!code ++]
"experimentalRuntimeMode": "runtime-uni-app" // [!code --]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
// .vscode/settings.json
{
// 在保存时格式化文件
"editor.formatOnSave": true,
// 文件格式化配置
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// 配置语言的文件关联
"files.associations": {
"pages.json": "jsonc", // pages.json 可以写注释
"manifest.json": "jsonc" // manifest.json 可以写注释
}
}
manifest.json
和 pages.json
设置为 jsonc
- 原依赖 `@types/wechat-miniprogram` 现调整为 `miniprogram-api-typings`
- 原配置 `experimentalRuntimeMode` 现调整为 `nativeTags`。
这一步处理很关键,否则 TS 项目无法校验组件属性类型。