跨域调试
接口跨域配置
1. 修改配置
假设请求的接口地址为: http://www.easybui.com/api/getDetail?id=123
打开根目录下的 app.json,里面有个键值 proxy 的对象。
{
...
"proxy": {
    "/api": {
      "target": "http://www.easybui.com",
      "changeOrigin":true,
      "ssl": false
    }
  }
...
}
"/api": 为请求接口的二级目录
"target": "http://www.easybui.com": 为请求接口的域名地址
2. 修改请求的方法
// 一定要注意这个请求的url是 "api/xxx", 不能是 "/api/xxx"
bui
  .ajax({
    url: "api/getDetail",
    data: {
      id: "123",
    },
  })
  .then(function (res) {});
注意: ajax 请求的时候请使用
相对工程路径,这样代理才会正确转发.结合全局配置,可以把 url 前部分作为变量配置项, 调试的时候为空, 打包的时候再改为正式环境,打包后没有跨域问题。
global.js
loader.global(function () {
  // 本地调试为空"",会自动转发到app.json配置的域名,正式环境修改为接口域名: http://www.easybui.com/
  let baseurl = "";
  // 模拟请求的接口
  let apiGetListUrl = baseurl + "api/getDetail/";
  return {
    api: {
      getListUrl: apiGetListUrl,
    },
  };
});
main.js
loader.define(function(require,exports,module,global){
    // 请求
    global.ajax({
        url: global.api.getListUrl
        data: {
            id:"123"
        }
    }).then(function(res){
        console.log(res)
    })
})
关于代理的更多配置,可以查看 http-proxy-middleware 的使用说明.
手机远程调试
VConsole 是在手机端调试的利器, 1.7.x 工程默认内置了这个模块,直接引入即可。
方法 1:
src/index.js
// 手机调试,正式环境请自行去掉
import VConsole from "vconsole";
const vConsole = new VConsole();
bui.ready(function () {
  // 控件初始化
});
方法 2:
src/index.html
<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<script>
  // VConsole will be exported to `window.VConsole` by default.
  var vConsole = new window.VConsole();
</script>
手机远程预览
假设打开的预览地址为 http://localhost:3000 ,把localhost改成 您的本机 IP 10.0.0.123,可以通过微信扫码预览,或者手动输入地址。
微信调试缓存
微信调试需要注意的是,微信里面的缓存很严重,每次修改,需要给修改的 js 引用,后面增加
?t=时间戳之类的方式,来确保脚本的更新.
去除脚本缓存
例如:
<script src="bui.js?t=2016073101"></script>
单页模块化开发, 通过重新初始化
window.loader设置缓存参数为 false, 加载的模块便会采用时间戳的方式加载.
src/index.js
// 这行代码必须在bui.ready 之前
window.loader = bui.loader({ cache: false });
bui.ready(function () {
  //
});