搭建你的项目脚手架 —— 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


目录
相关文章
|
14天前
|
设计模式 监控 JavaScript
TypeScript 在大型项目内网管理监控软件中的结构优化
本文探讨了 TypeScript 在大型项目内网管理监控软件中的结构优化,包括模块划分与组织、接口与抽象类的使用以及依赖注入与控制反转的设计模式,通过具体代码示例展示了这些技术的应用,提高了代码的可读性、可维护性和灵活性。
28 3
|
11天前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
18天前
|
JavaScript 前端开发 测试技术
JavaScript与TypeScript:为何TypeScript成为大型项目的首选
JavaScript与TypeScript:为何TypeScript成为大型项目的首选
23 1
|
4月前
|
JavaScript 前端开发 开发工具
TypeScript的介绍,let age:number = xxx,可以直接看出数据类型,Type由微软开发,可以在任何浏览器和系统中运行,比较适合大型项目,TypeScript的安装
TypeScript的介绍,let age:number = xxx,可以直接看出数据类型,Type由微软开发,可以在任何浏览器和系统中运行,比较适合大型项目,TypeScript的安装
|
2月前
|
JavaScript 前端开发 编译器
三个小时vue3.x从零到实战(typescript的搭建、使用及资料)
该文章介绍了如何在Vue 3项目中集成TypeScript,包括TypeScript的安装、基本使用,以及如何通过TypeScript增强Vue应用程序的类型安全性。
37 0
|
3月前
|
JavaScript 前端开发 测试技术
TypeScript逆袭!大型项目为何对它情有独钟?揭秘背后的真相!
【8月更文挑战第27天】随着前端领域的快速发展,JavaScript已成为Web开发的核心语言。然而,在处理大型项目时,其弱类型特性导致的维护困难和易错性等问题日益突出。为解决这些问题,TypeScript应运而生,逐渐成为大型项目的首选方案。
36 3
|
3月前
|
JavaScript 前端开发 安全
【技术革新】Vue.js + TypeScript:如何让前端开发既高效又安心?
【8月更文挑战第30天】在使用Vue.js构建前端应用时,结合TypeScript能显著提升代码质量和开发效率。TypeScript作为JavaScript的超集,通过添加静态类型检查帮助早期发现错误,减少运行时问题。本文通过具体案例展示如何在Vue.js项目中集成TypeScript,并利用其类型系统提升代码质量。首先,使用Vue CLI创建支持TypeScript的新项目,然后构建一个简单的待办事项应用,通过定义接口描述数据结构并在组件中使用类型注解,确保代码符合预期并提供更好的编辑器支持。
81 0
|
3月前
|
JavaScript 前端开发 安全
立等可取的 Vue + Typescript 函数式组件实战
立等可取的 Vue + Typescript 函数式组件实战
|
4月前
|
JavaScript 前端开发 IDE
React 项目中有效地使用 TypeScript
React 项目中有效地使用 TypeScript
|
3月前
|
JavaScript 前端开发 安全
TypeScript在项目中应用
【8月更文挑战第4天】TypeScript在项目中应用
36 0