vue中台项目搭建流程

424 阅读2分钟

搭建项目前的一些基本准备

目标: 介绍搭建一个vue中台项目,需要环境和工具

接下来要做的是一个大型的项目,我们需要更好的环境准备和资源前置,所以提前检查我们的环境和资源

nodejs环境

nodejs是当下前端工程化开发必不可少的环境, 使用 nodejs的npm功能来管理依赖包 查看node 和 npm的版本

$ node -v #查看node版本
$ npm  -v #查看npm版本

查看git安装版本

$ git --version #查看git安装版本

npm淘宝镜像

npm是非常重要的npm管理工具,由于npm的服务器位于国外, 所以一般建议 将 npm设置成国内的淘宝镜像

设置淘宝镜像

$ npm config set registry  https://registry.npm.taobao.org/  #设置淘宝镜像地址
$ npm config get registry  #查看镜像地址

vscode编辑器

vscode编辑器插件 + vetur + eslint

项目模板启动和目录介绍

目标: 拉取项目的基础模板,并对目录进行介绍 git拉取基础项目模板

# 拉取基础模板到hrsaas目录
$ git clone  https://github.com/PanJiaChen/vue-admin-template.git  hrsaas# 如果github的地址下载失败的话,请尝试使用下面码云的地址
# 码云仓库地址: https://gitee.com/panjiachen/vue-admin-template.git
# git clone  https://gitee.com/panjiachen/vue-admin-template.git  hrsaas

安装项目依赖(定位到项目目录下)

$ cd hrsaas  # 进入到本地项目当中
$ npm install  #安装依赖

注意!!! 如果用npm安装不成功的话,尝试用如下命令,用yarn来安装

$ yarn

启动项目

$ npm run dev #启动开发模式的服务  yarn dev

项目基础架构

main.js

image.png

App.vue

image.png

permission.js

权限管理 路由前置守卫 路由后置守卫

settings.js

项目信息的配置

vuex结构

image.png

API模块和请求封装模块介绍

目标 介绍API模块的单独请求和 request模块的封装

Axios的拦截器介绍

该项目采用了API的单独模块封装和axios拦截器的方式进行开发

axios的拦截器原理如下

image.png

vue.config.js

设置固定的本地访问端口和网站名称
 const name=`测试中台`
 const port=process.env.port || process.env.npm_config_port || 9528
Vue-Cli配置跨域代理

vue-cli的配置文件即**vue.config.js**,这里有我们需要的 代理选项

module.exports = {
  devServer: {
    // 省略前面的代码
      
   // 代理配置
    proxy: {
        // 这里的api 表示如果我们的请求地址有/api的时候,就出触发代理机制
        // localhost:8888/api/abc  => 代理给另一个服务器
        // 本地的前端  =》 本地的后端  =》 代理我们向另一个服务器发请求 (行得通)
        // 本地的前端  =》 另外一个服务器发请求 (跨域 行不通)
        '/api': {
        target: 'www.baidu.com', // 我们要代理的地址
        changeOrigin: true, // 是否跨域 需要设置此值为true 才可以让本地服务代理我们发出请求
         // 路径重写
        pathRewrite: {
            // 重新路由  localhost:8888/api/login  => www.baidu.com/api/login
            '^/api': '' // 假设我们想把 localhost:8888/api/login 变成www.baidu.com/login 就需要这么做 
        }
      },
    }
  }
}

request中环境变量和异常的处理

image.png 基础模板在**.env.development.env.production定义了变量VUE_APP_BASE_API,该变量可以作为axios请求的baseURL**

补充

封装请求模块

   axios的封装,创建axios实例
   请求拦截器,token的统一注入
   响应拦截器,处理数据异常和数据结构

环境变量

**`.env.development`**和 **`.env.production`**定义变量

Vuex

状态管理工具

主页的token拦截处理

使用路由前置守卫处理

element

组件库