Vite + vue3 + ts 项目搭建

211 阅读2分钟

创建项目

运行下面的命令创建 vue3 项目,按下图所示进行选择。然后运行 npm install 下载依赖包,npm run dev 运行项目

npm create vue@latest my-vue3-app

image.png

⚠️ 注意 1:项目中 eslint 版本已经是 v9+ 了;v9 要求 node 版本在 (^18.18.0^20.9.0, or >=21.1.0)。node 版本要求

⚠️ 注意 2:VSCode 编辑器预先下载 Vue Official 插件

image.png

问题 1:使用 VSCode 开发时,vue3 项目中要禁用 vetur (vue2 用的),启用 vue official (vue3 用的)

vue3 项目中启用了 vetur 发生了下图中的错误:

image.png

如果你既有 vue3 项目,又有 vue2 项目,可以为它们分别创建 workspace,然后在 vue3 的 workspace 中禁用 Vetur。具体可参考:blog.csdn.net/Zhuangvi/ar…

问题 2:无法识别vue文件

www.cnblogs.com/liujunhang/…

问题 3:在 .ts 文件中编辑之后,格式化问题没有提示且保存无法自动格式化

下图左侧是没有格式错误提示的,右侧是有提示的。 image.png

这是因为初始化之后的 eslint.config.js 使用了 @vue/eslint-config-prettier/skip-formatting,它没有开启 prettier/prettier 规则。将其改成引用 @vue/eslint-config-prettier image.png

@vue/eslint-config-prettier/skip-formatting image.png

@vue/eslint-config-prettier image.png

问题 4:使用 vite-svg-loader 时 ts 报错

4.1 下载 vite-svg-loader 并且在 vite.confg.ts 中配置如下:

npm install -D vite-svg-loader

image.png

4.2 使用的时候报错:找不到声明

<script setup lang="ts">
import AssetLogoFull from '@/assets/logo.svg?component'
</script>

image.png

4.3 解决办法

其实 vite-svg-loader 包里提供了声明文件,如下图: image.png

我们只需要在 ts 配置中 include 声明文件的路径即可 image.png

问题 5:.vue 的 script 中使用了 tsx 报错:Parsing error: '>' expected.eslint

<script setup lang="tsx">
type ListItemType = { icon?: string }

const menuIcon = (item: ListItemType) => {
  if (typeof item.icon === 'string') return <t-icon name={item.icon} />
  const RenderIcon = item.icon
  return RenderIcon
}
</script>

image.png

在 eslint.config.js 配置支持 tsx,默认 @vue/eslint-config-typescript 是只支持 ts(github.com/vuejs/eslin…

image.png

问题 6:vue, vue-router 在各个文件中经常引用,可以使用 unplugin-auto-import/vite 避免显示 import

6.1 下载 unplugin-auto-import 并且在 vite.confg.ts 中配置如下:

npm install -D unplugin-auto-import

image.png

6.2 运行 npm run dev 可以看到在根目录下生成了 auto-imports.d.ts 文件 image.png

6.3 在引用了 vue, vue-router 的文件中去掉引用,发现还是报错了,这是 ts 没有找到 auto-imports.d.ts image.png

6.4 在 ts 配置中 include 声明文件的路径即可 image.png

问题 7:如何在保存的时候自动格式化 import 的引用顺序

下载 eslint-plugin-simple-import-sort 并且在 eslint.confg.ts 中配置如下:

 npm install -D eslint-plugin-simple-import-sort

image.png

建议 8:推荐一个可视化看 eslint 的工具

npx @eslint/config-inspector

image.png