搭建pont环境 with axios

713 阅读3分钟

我的环境

  • 2022年1月23日。
  • 系统是macOS 12.1,但同事的win10也能用。
  • vscodepont插件v1.0.13
  • npm包中的pont插件v1.0.13

搭建pont环境

    首先,后端要开好swagger,V2以上的。开好后让后端给你swagger相关的json文件地址,里头的格式类似这样。如果你的后端目前尚不能提供这种json文件,那么你可以暂时用这个petstore.swagger.io/v2/swagger.… ,以便后面的学习。
    其次,vscode 安装pont插件。

    然后

# 安装pont-engine,作为开发环境的依赖(不会用于正式环境)
npm install pont-engine -D

# 执行刚安装的pont-engine的脚本
npx pont start

    于是会像这样

53032657-EDCF-4D60-B4C0-9F94C5114E87.png     让我来简单解释一下:

  1. 数据源地址就填写前面所说的json文件地址。
  2. 其他选项就是字面意思而已。
  3. 不使用自动化mocks服务原因是,现在只是为了说明如何搭建pont环境。
  4. "使用内置模版”填写true、fetch的原因是,便于你理解,不会溺死。用了模板之后,可以与之后生成的js文件一一对应,很容易在里头加点你希望的语句,比如console.log。

B0EAEB3D-4F9A-497D-8C73-D66D797B5B9F.png

    这样之后,目录里会生成一份pont-config.json文件。点击vscode底部的黄字“generate”,于是肉眼可见地生成了services目录和pontTemplate.ts文件。

    好了,现在接口代码已经生成了。

    让我们来看看生成的./services/mods/index.js,和./services/index.js。这两个文件都提到了window,代表了全局挂载。那么,在你的项目入口处import ‘@/../service之后,在你的页面文件输入API.,即可弹出接口提示,然后使用即可。

image.png

    pont环境完成了,现在可以删除掉pont-engine的开发依赖了npm uninstall pont-engine

使用axios

    你可以在./services/pontCore.js文件里看到这个

A52C8393-E946-4405-A08C-7175B64C8B22.png

    同时你检查一下./services/mods/xxx/xxx.js,可以看见 0B5918F2-3846-407D-8680-3565EC7488E9.png

    所以我们在上一部分搭建pont环境项目入口文件中,也就是import ’service’的那个文件,如此如此:

import { PontCore } from './service/pontCore';
import myRequest from '@/utils/myRequest';
PontCore.useFetch(myRequest);

    接下来就是喜闻乐见的封装axios的环节了。首先要npm install axios。然后就

/* 当前是@/utils/myRequest.ts文件 */
import axios from 'axios';
export default function myRequest(url: string, option?: any) {
    console.log('myRequest的参数', url, option);
    return axios
    .request({ url, ...option })
    .then((res: any) => {
        if (!res?.data) throw new Error('接口没有返回数据');
        if (res.data.code !== 200) throw new Error(`错误的状态码${res.data.code}`);
            return res.data;
        })
    .catch((error) => {
        throw new Error(error);
    });
}

常用配置

    如果你用了eslint和prettier,以及git。我建议都ignore掉,不然eslint报错,prettier频繁美化,git频繁上传,频繁程度视接口API修改频繁程度而定。

eslint的ignore

创建.eslintrcignore文件,里头添加service

prettier的ignore

创建.prettierignore文件(也许你有了),里头添加service

git的ignore

创建.gitignore文件(也许你有了),里头添加 service

ignore注意事项

eslintignoreprettierignore的如果没生效,重启vscode试试。
gitignore的如果没生效,参考下这篇解决gitignore不生效问题