有来团队后台项目-解析10

axios

安装

pnpm i axios

创建文件

src 目录下创建 utils 文件夹,utils 文件夹下创建request.ts

src 目录下创建store 文件夹,文件夹下创建index.ts ,创建modules 文件夹

编写request.ts

// 引入axios,引入请求拦截器类型约束,响应拦截器类型约束
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";

// 创建axios  实例

const service = axios.create({
  baseURL: "http://localhost:3000",
  timeout: 5000,
});
// 请求拦截器
service.interceptors.request.use(
  (config: InternalAxiosRequestConfig) => {
    // 在发送请求之前做些什么
    return config;
  },
  (error: any) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);
// 响应拦截器
service.interceptors.response.use(
  (response: AxiosResponse) => {
    // 对响应数据做点什么
    return response;
  },
  (error: any) => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);
// 导出axios 实例
export default service;

配置环境变量

新建目录

src/.env.development 开发环境
src/.env.production 生产环境

配置环境

// .env.development
## 开发环境
NODE_ENV='development'
# 应用端口
VITE_APP_PORT = 3009

# 代理前缀
VITE_APP_BASE_API = '/dev-api'

# 线上接口地址
VITE_APP_API_URL = http://vapi.youlai.tech

//.env.production
## 生产环境
NODE_ENV='production'

# 代理前缀
VITE_APP_BASE_API = '/prod-api'

配置环境变量只能提示

新建文件src/typings/env.d.ts
// 环境变量的类型约束

/// <reference types="vite/client" />

declare module "*.vue" {
  import { DefineComponent } from "vue";
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
  const component: DefineComponent<{}, {}, any>;
  export default component;
}

interface ImportMetaEnv {
  /** 应用端口 */
  VITE_APP_PORT: string;
  /** API 基础路径 */
  VITE_APP_BASE_API: string;
  VITE_APP_API_URL: string;
}

interface ImportMeta {
  readonly env: ImportMetaEnv;
}

/**
 * 平台的名称、版本、运行所需的`node`版本、依赖、构建时间的类型提示
 */
declare const __APP_INFO__: {
  pkg: {
    name: string;
    version: string;
    engines: {
      node: string;
    };
    dependencies: Record<string, string>;
    devDependencies: Record<string, string>;
  };
  buildTimestamp: number;
};

配置package.json

 "preinstall": "npx only-allow pnpm",// 只能使用pnpm
"build": "vite build --mode production",
"dev": "vite serve --mode development",
"build:prod": "vite build --mode production && vue-tsc --noEmit",
"engines": {
    "node": ">=18.0.0"
  },

vue-tsc:Vue 官方提供的命令,用于执行 TS 的类型检查。它在执行时会根据项目中的 tsconfig.json 文件配置进行类型检查
–noEmit:TS 编译器的选项,使用 --noEmit 选项后,编译器仅执行类型检查,而不会生成任何实际的编译输出
engines: node 的版本要大于18.0.0

配置vite.config.ts

 // 获取环境
  const env = loadEnv(mode, process.cwd());
      // 配置代理
    server: {
      // 允许IP 访问
      host: "0.0.0.0",
      port: Number(env.VITE_APP_PORT),
      open: true,
      proxy: {
        // 配置代理
        [env.VITE_APP_BASE_API]: {
          changeOrigin: true,
          // 接口地址
          target: env.VITE_APP_BASE_API,
          rewrite: (path) =>
            path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
        },
      },
    },

安装遗漏的icon 插件

pnpm i unplugin-icons

配置lint-staged文件

pnpm i lint-staged S

配置husky文件

在.husky 文件夹下的pre-commit文件中配置

npm run lint:lint-staged

配置package.json

// 在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的

    "lint:lint-staged": "lint-staged",

执行配置命令

pnpm run dev
pnpm run build:prod

查看是否会报错

补充安装git 提交规范

安装

npm i -D cz-git czg

配置

package.json 中

// package.json 添加 config 字段,指定使用的 commitizen 适配器,然后在 script 中添加一个脚本命令
"scripts": {
    "commit": "git-cz"
    }
      "config": {
    "commitizen": {
      "path": "node_modules/cz-git"
    }
  },

以后把 git commit 替换成 npm run cz

pinia

安装

pnpm i pinia

@vueuse/core

一些封装好的工具方法

pnpm i @vueuse/core

查看源码

https://github.com/1094549944/youlahoutaijiexi/tree/jiexi10

相关推荐

  1. 团队后台项目-解析10

    2024-03-15 04:32:01       23 阅读
  2. 团队后台项目-解析3

    2024-03-15 04:32:01       19 阅读
  3. 能源党建后台项目总结

    2024-03-15 04:32:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 04:32:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 04:32:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 04:32:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 04:32:01       18 阅读

热门阅读

  1. Qt/QML编程之路:线程及Slot的指针传递(47)

    2024-03-15 04:32:01       18 阅读
  2. 2024.3.14 训练记录(16)

    2024-03-15 04:32:01       19 阅读
  3. 大模型prompt提示词如何调优?

    2024-03-15 04:32:01       18 阅读
  4. 【点云】激光点云建图评测

    2024-03-15 04:32:01       18 阅读
  5. OpenAI GPT-4.5 Turbo 泄露,六月或将发布

    2024-03-15 04:32:01       20 阅读
  6. 4. git 添加版本标签

    2024-03-15 04:32:01       21 阅读
  7. Oracle控制文件control file(1)控制文件概述

    2024-03-15 04:32:01       21 阅读
  8. 电子信息工程实践案例分析报告

    2024-03-15 04:32:01       20 阅读
  9. PHP伪协议详解

    2024-03-15 04:32:01       22 阅读
  10. LeetCode(力扣)算法题_2864_最大二进制奇数

    2024-03-15 04:32:01       19 阅读
  11. 2.Linux文件IO基础

    2024-03-15 04:32:01       20 阅读
  12. 查看Linux服务器配置

    2024-03-15 04:32:01       22 阅读
  13. leetcode:反转链表II 和k个一组反转链表的C++实现

    2024-03-15 04:32:01       22 阅读
  14. 网络学习DAY3--TCP并发

    2024-03-15 04:32:01       20 阅读