Vite2 + Vue3 + TypeScript + Pinia 搭建一套企业级的开发脚手架
Vue2 与 Vue3 的区别
- Vue3 由于完全由 TS 进行重写,在应用中对类型判断的定义和使用有很强的表现。同一对象的多个键返回值必须通过定义对应的接口(interface)来进行类型定义。要不然在 ESLint 时都会报错。 
- Vue2 与 Vue3 最大的区别: Vue2 使用 Options API 而 Vue3 使用的 Composition API 
介绍 vite
- 💡 极速的开发服务器启动 
- ⚡️ 轻量快速的热模块重载(HMR) 
- 🛠️ 丰富的功能 
- 📦 自带优化的构建 
- 🔩 通用的插件接口 
- 🔑 完全类型化的 API 
- Vite (法语意为 “迅速”,发音 /vit/)是一种全新的前端构建工具,它极大地改善了前端开发体验 
使用 vite 快速创建脚手架
兼容性注意:Vite 需要 Node.js 版本 >= 12.0.0。
- 第一步: 在需要创建项目文件目录下打开 cmd 运行以下命令 
```
```
2.这里采用 npm 方法安装
 
 3.这里选择 vue-ts 然后回车
 
 4.等项目创建完之后,就可以看到结果了 cd 到文件夹,安装依赖,启动项目
 
  
 代码风格统一
Eslint 支持
- eslint 安装 
```
```
- 项目下新建 .eslintrc.js 
```
```
- 项目下新建 .eslintignore 
```
```
prettier 支持
```
```
- 解决 eslint 和 prettier 冲突 
```
```
- 项目下新建 .prettier.js 
```
```
- 项目下新建 .prettierignore 
```
```
- package.json 配置: 
```
```
配置 husky + lint-staged
- 使用 husky + lint-staged 助力团队编码规范, 
```
```
- husky 是一个为 git 客户端增加 hook 的工具。安装后,它会自动在仓库中的 .git/ 目录下增加相应的钩子;比如 pre-commit 钩子就会在你执行 git commit 的触发。 
- 那么我们可以在 pre-commit 中实现一些比如 lint 检查、单元测试、代码美化等操作 
- lint-staged,一个仅仅过滤出 Git 代码暂存区文件(被 git add 的文件)的工具;这个很实用,因为我们如果对整个项目的代码做一个检查,可能耗时很长,如果是老项目,要对之前的代码做一个代码规范检查并修改的话,这可能就麻烦了呀,可能导致项目改动很大。 
```
```
配置文件引用别名 alias
- 直接修改 vite.config.ts 文件配置: 
```
import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import path from 'path'
```
- 修改 tsconfig.json 
```
```
配置 css 预处理器 scss
- 插件安装 
```
```
- 配置全局 scss 样式 
```
- 在 src/assets 下新增 style 文件夹,用于存放全局样式文件 
- 新建 main.scss, 设置一个用于测试的颜色变量 : 
- 全局配置 
```
```
- 组件中使用 
```
```
 
 路由安装使用
- 安装路由插件 
```
```
- 在 src 文件下新增 router 文件夹 => router.ts 文件,内容如下: 
```
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';const routes: RouteRecordRaw[] = [{path: '/',name: 'home',component: () => import('@/views/Home/index.vue'), // 注意这里要带上 文件后缀.vue},];
```
- 修改入口文件 mian.ts : 
```
import { createApp } from 'vue'import App from './App.vue'import router from './router/index'
```
- 路由文档使用说明 
```
```
状态管理 pinia
- 由于 vuex 4 对 typescript 的支持让人感到难过,所以状态管理弃用了 vuex 而采取了 pinia. pinia 的作者是 Vue 核心团队成员 
- 安装 pinia 
- main.ts 中增加 
- 在 src 文件夹下新增 store 文件夹,接在在 store 中新增 main.ts 
```
```
- 组建中获取 store : 
<template><div>{{mainStore.name}}</div></template>
- getters 用法介绍 
- Pinia 中的 getter 与 Vuex 中的 getter 、组件中的计算属性具有相同的功能 
- 件中使用 
```
<template><div>用户名:{{ mainStore.name }}<br />长度:{{ mainStore.nameLength }}</div><hr/><button @click="updateName">修改 store 中的 name</button></template>
```
环境变量配置
- vite 提供了两种模式:具有开发服务器的开发模式(development)和生产模式(production) 
- 项目根目录新建:.env.development : 
- 项目根目录新建:.env.production : 
- 使用方式 
```
mport.meta.env.VITE_APP_WEB_URL
```
- 打包区分开发环境和生产环境 
 
 - 通过以上的流程,我们就可以搭建一个企业级专业的脚手架模板 
版权声明: 本文为 InfoQ 作者【小周先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/f16158c1b6e55263dc93492f3】。文章转载请联系作者。











 
    
评论