搭建你的项目脚手架 —— vue3.x + typescript4.x + vite2.x + pinia2.x(一)

简介: 搭建你的项目脚手架 —— vue3.x + typescript4.x + vite2.x + pinia2.x

image.png


前言

到现在为止,已经有不少团队和项目都已经正式使用 vue3 + vite + typescript 进行企业级的项目开发了,本文主要介绍下如何搭建一套相应的前端工程化项目环境,终是 “纸上得来终觉浅,绝知此事要躬行”。

若你想了解更多,源码的地址

基本项目结构

快速创建项目

通过 npm create vite@latest 命令创建基本的项目:

image.png

目录结构:

image.png

默认启动页面:

image.png

现在,我们已经拥有了一个最基本项目结构了,接下来我们只需要为其 "添砖加瓦" 即可。

代码规范

配置 editorconfig

目的是为了保证不同开发人员在 不同操作系统 上拥有一致的编码风格,例如同样是换行符,在不同系统上表现是不一样的,又或者是不同人员在不同的编辑器上使用的缩进方式不同等,都很容易导致代码风格不统一的问题。

  • 配置 editorconfig 文件,可参考 Vue2.x 中的配置
  • 如果使用的是 VScode 编辑器,需要安装插件:EditorConfig for VScode
  • 如果使用的是 WebStorm 编辑器,不需要安装 EditorConfig 插件,因为其内部已经默认集成了,所以只需要开启支持即可。

测试效果如下,其中是通过 Tab 键产生的缩进:

image.png

配置 eslint

ESLint 能够帮助开发者在编码过程中及时给予不符合代码规范的提示,它和下面的 prettier 作用的时机是不一样的。

  • 安装依赖 npm install eslint --save-dev
  • 可通过 npm init @eslint/config 命令设置配置文件
     image.png
  • 上一步操作完成后会得到 .eslintrc.js 文件,可通过此文件修改配置
  • 配置 scripts 脚本命令: "lint": "eslint --fix --ext .ts,.vue src" 提供自动修复功能
  • 通过 eslint-plugin-vue 解决 eslint 认为 defineProps 未定义错误,如下:
    image.png
  • 修改 .eslintrc.js 配置文件,如下:
env: {
    ...
   'vue/setup-compiler-macros': true,
 }
复制代码

配置完成后 eslint 生效,以下原因是没有在每行语句结束处添加 ;

image.png

配置 prettier

目的是为了统一代码的格式化方式,若使用的是 VScode 编辑器,可以直接使用它的插件 Prettier - Code formatter,但这种方式依赖于 VScode 插件机制实现的格式化,但是一旦开发人员编辑器不统一,或者是想通过 script 脚本命令直接格式化所有包含文件,那么就不得不需要单独安装这个 prettier 包。

  • 安装依赖 npm install --save-dev --save-exact prettier
  • 创建 .prettierrc 文件进行配置,可参考 Vue3.x 的配置
  • 创建 .prettiterignore文件配置忽略文件
  • 创建 script 脚本 prettier --write . —— 目的是支持通过脚本一次性执行多个文件的格式化
  • 通过 eslint-config-prettiereslint-plugin-prettier 避免 prettiereslint 配置上的冲突
  • 安装依赖 npm install --save-dev eslint-config-prettier eslint-plugin-prettier
  • .eslintrc.js 文件中添加 plugin:prettier/recommended 进行扩展,例如:
extends: [
    'plugin:vue/vue3-essential',
    '@vue/airbnb',
    '@vue/typescript/recommended',
  ],
复制代码

通过脚本实现格式化效果如下:

image.png

配置 husky

虽然前面我们已经使用了 eslint 规范化代码,但是仍无法保证开发人员是否对所有 eslint 暴露的问题进行了处理,此时如果开发人员选择将问题忽略,直接将代码进行提交,必然导致仓库中的代码也是不规范的,因此,在不符合规范的条件下拦截开发人员的提交动作是有必要的。

  • husky 文档 推荐使用 npx husky-init && npm install 命令自动化设置
     image.png
  • 安装 npm install --save-dev commitizen 目的是规范化提交信息
  • 使用 commitizen 提交时,系统会提示开发者在提交时填写所有必需的提交字段
  • 通过 npx commitizen init cz-conventional-changelog --save-dev --save-exact 命令初始化项目,便后续使用 cz 时能有更友好的记录
  • image.png
  • 后续进行提交操作时,通过 npx cz 代替 git add . 之类的命令,如:
  • 可以在 package.json 添加脚本  "scripts": { "commit": "cz" },并使用 npm run commit 代替 npx cz 命令
  • image.png
  • 安装 npm install --save-dev @commitlint/config-conventional @commitlint/cli
  • 在根目录创建 commit.config.js 文件进行 commit message 配置,如:
module.exports = {
        extends: ['@commitlint/config-conventional']
    };
复制代码

以下是规范化后提交格式:

image.png


目录
相关文章
|
4月前
|
JavaScript
【第12期】Vue3+TypeScript+Vite中动态引入图片等静态资源
【第12期】Vue3+TypeScript+Vite中动态引入图片等静态资源 c
146 0
|
2月前
|
JavaScript 前端开发
在Vue中使用TypeScript的常见问题有哪些?
在Vue中使用TypeScript的常见问题有哪些?
29 2
|
2月前
|
JavaScript 前端开发
在Vue中使用TypeScript的优缺点是什么?
在Vue中使用TypeScript的优缺点是什么?
15 0
|
2月前
|
JavaScript
在 Vue 中如何使用 TypeScript?
在 Vue 中如何使用 TypeScript?
16 0
|
3月前
|
JavaScript 安全 容器
Vue3 + setup + TypeScript: 构建现代、类型安全的Vue应用的关键技巧总结
当使用 setup 的时候,组件直接引入就可以了,不需要再自己手动注册
|
4月前
|
前端开发 JavaScript 测试技术
Vue3+Vite+TypeScript常用项目模块详解(下)
现在无论gitee还是github,越来越多的前端开源项目采用Vue3+Vite+TypeScript+Pinia+Elementplus+axios+Sass(css预编译语言等),其中还有各种项目配置比如eslint 校验代码工具配置等等,而我们想要进行前端项目的二次开发,就必须了解会使用这些东西,所以作者写了这篇文章进行简单的介绍。
|
4月前
|
JavaScript 前端开发 API
Vue3+Vite+TypeScript常用项目模块详解
现在无论gitee还是github,越来越多的前端开源项目采用Vue3+Vite+TypeScript+Pinia+Elementplus+axios+Sass(css预编译语言等),其中还有各种项目配置比如eslint 校验代码工具配置等等,而我们想要进行前端项目的二次开发,就必须了解会使用这些东西,所以作者写了这篇文章进行简单的介绍。
Vue3+Vite+TypeScript常用项目模块详解
|
4月前
|
JavaScript
Vue3 + Typescript + Node.js 搭建elementUI使用环境
Vue3 + Typescript + Node.js 搭建elementUI使用环境
43 0
|
4月前
|
JavaScript 前端开发 开发者
Vue工具和生态系统: Vue.js和TypeScript可以一起使用吗?
Vue工具和生态系统: Vue.js和TypeScript可以一起使用吗?
56 0
|
4月前
|
JavaScript
Driverjs use in Vue TypeScript Project
Driverjs use in Vue TypeScript Project
Driverjs use in Vue TypeScript Project