3.0.16 • Published 3 days ago

rocket-swap v3.0.16

Weekly downloads
-
License
ISC
Repository
github
Last release
3 days ago

为什么要使用SWAP

如果你有以下场景

  • 开发web页面,苦苦等待后端调试
  • 苦恼在APP调试移动H5页面(why?你可能使用到JSBridge)
  • 要写很多非主业务和衍生文件进行单元测试
  • 你的mock api需要侵入关联业务 or 手动开关mock

不妨尝试接入 SWAP,可以帮助您解决以上的问题。

根据不权威调研

客观分析开发一个移动H5需求的时间(某视APP榜单):

  • 业务代码开发与调试:2D
  • 与后端联调:1D
  • 编写单元测试:2D(90%覆盖率)
  • 总时长:5D

使用了SWAP之后:

  • 业务代码开发与调试:1D
  • 与后端联调:0D
  • 编写单元测试:1D
  • 编写MockData: 0.5D
  • 总时长:2.5D

特性

  • 无侵入模拟API
  • 熟悉的Node Response用法
  • 支持jest,可以让你编写更少的单元测试
  • 中心化Mock Data
  • 支持JSBridge Mock

如何使用

注意事项
  • 需要在httpslocalhost 的域名中操作,自定义https域名可以利用whistle
  • webpack需要4.40.0以上版本
  • 如果使用webpack 5 需要额外引用 node-polyfill-webpack-plugin
1.安装依赖包
npm install rocket-swap
2.根据项目构建方案
  • 如果项目有使用webpack 4.40.0以上版本
    // webpack.config.js
    // const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');  // webpack 5 需要引入
    const SwapWebpackPlugin = require('rocket-swap/webpackPlugin');
    ...
    module.exports = {
      ...
      plugins: [
        // new NodePolyfillPlugin(); //webpack 5 需要引入
        new SwapWebpackPlugin();
      ]
    }
  • 非webpack项目,请执行cmd,把swapSW.js生成到项目public目录
    npx swap init <xxxxxxx>

    xxxxxxx 代表 public地址,如果是create-react-app,则如下

    npx swap init public
3.项目中引用
// src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
// 引入swap
if (process.env.NODE_ENV === 'development') {
  const swap = require('rocket-swap')
  const mockData = require('../mock')
  swap.swapInit({
    mockData
  })
}

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);
// mocker.js
module.exports = {
  'GET /list': (req, res, ctx) => {
    return res(
      ctx.status(200),
      ctx.json({
        code: '201',
      }),
    )
  }
}

展望

  • 云端API接入
  • 构建工具Plugin

Contributors

感谢大家的贡献:

3.0.16

3 days ago

3.0.15

3 days ago

3.0.13

14 days ago

3.0.14

14 days ago

3.0.12

16 days ago

3.0.10

18 days ago

3.0.8

18 days ago

3.0.7

18 days ago

3.0.10-beta.3

18 days ago

3.0.10-beta.1

18 days ago

3.0.4

20 days ago

3.0.3

20 days ago

3.0.2

20 days ago

3.0.1

20 days ago

3.0.6

20 days ago

3.0.5

20 days ago

2.0.15

6 months ago

2.0.16

6 months ago

2.0.13

6 months ago

2.0.14

6 months ago

2.0.5

10 months ago

2.0.7

10 months ago

2.0.6

10 months ago

2.0.8

10 months ago

2.0.3

1 year ago

2.0.4

1 year ago

2.0.1

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.11

2 years ago

1.0.9

2 years ago

1.0.13

2 years ago

2.0.0

1 year ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago