文档中心 > 开发工具&发布

常见问题

更新时间:2017/09/27 访问次数:3310

常见问题

在工作台找不到要调试的页面?

如果在 qap.config.js 中没有定义 entryentry{} , qap-cli 会默认取符合 src/pages/页面名称/index.jsx 规则的所有文件作为入口,这也是我们**推荐的页面管理方式**。
如果你的页面入口不符合上述规则,又不方便调整。也可以使用自定义entry的方式定义页面入口,以下是一个伪代码demo。

webpack:{
    entry:{
      index:[path.resolve(process.cwd(),'src/index/index.jsx')],   //  **注意这里是数组且只能接受绝对路径**
      ndex:[path.resolve(process.cwd(),'src/detail/index.jsx')]
   }
}

既然是在js文件中,开发者也可以自己定义方法,获得符合自己项目结构的全部页面入口。entry:getEntry()

var path = require('path');
var glob = require('glob');
var getEntry = function(globPath) {
    var entries = {
    };
    glob.sync(globPath).forEach(function(entry) {
        var pathname = entry.split('/').splice(-2).join('/').split('.')[0];

        entries[pathname] = path.resolve(process.cwd(),entry);
    });

    return entries;
};

项目修改了但是在界面调试依旧是旧的?

查看是否在控制台上有报错,如果有报错的话会保留上一次成功的结果。

新老项目升级或新增页面,qap协议跳转找不到对应页面?

新项目默认使用扁平输出,即所有pages目录下的页面跳转如 src/pages/first/index.jsxsrc/pages/second/index.jsx ,只需通过 qap:///second.js 即可完成。
执行qap package可以查看build目录下的所有页面都被输出为扁平的结构。

修改了 qap.config.js 的打包配置感觉没有作用,和上次的大包结果一样?

external 的修改和 webpack 字段修改都会改变打包体积。如果打包体积未变化,可能是触发了happypack(4.0.0-beta2)的强缓存bug。通过随便修改一行代码,与上次打包时的文件内容有区别即可绕过。

对nuke按需引用没有生效?

查看是否已经打开了包内置,内置的优先级高于按需引用。

页面中出现 warining ,无法找到 export 出的 module ,页面中导出的 module 方法缺失,如下图:?

新初始化的项目默认打开了 es6 标准语法校验,实现打包体积优化的目的。开发者可以对自己的模块进行修改以符合es6模块规范或者
修改 qap.config.js 中的 toolkitConfig.webpack[‘optimize-size’][‘webpack’]:false 关闭这一功能。

与真机的调试链接断开?

真机与 qap-cli 之间的调试链接受网络环境影响较大,请确保网络稳定。另外锁屏,退出应用也会导致调试链接断开。

开启调试与关闭调试的执行结果不一致?

在打开 remote debug 调试开关后,应用中的 js 源代码将使用浏览器内核执行,并非真机内核。需排查代码中是否使用 qap 真机环境中不支持的语法或特性。
为js 污染运行环境,qap 容器锁死了 js 原型链,一般情况下此类错误都是使用了诸如 rxjs/lodash 等对原型链做了修改的类库导致。
过程如下:
1、关闭 remote debug 开关
2、打开 inspector ,查看错误日志输出
3、根据日志定位错误代码

提示端口号被占用?

qap应用在调试阶段需要占用 8080 8088 3000 三个端口号,如果被占用可以选择释放掉相应的端口号。

qap debug 和 package 不能运行,没有任何输出?

请确认是否在项目根目录,并升级qap-cli到最新版本 cnpm install -g qap-cli
请确认 node 版本是否在5.5.0 ~ 8.0.0,推荐版本 6.11.2。由于node 8 仍处于不稳定状态,许多二方库无法使用,qap-cli 暂时无法对node 8 进行兼容。

qap debug 或其他命令长时间卡住不动,没有任何报错,无法开启调试。

请确认当前node版本是否在5.5.0至8.0.0区间,对于二方开发者,请通过qap switch切换环境重新尝试。

qap-cli自动更新有报错?

大部分更新报错都是由于网络原因导致,使用qap clear清楚cli的缓存,再次执行qap debug 即可解决。

手机提示渲染页面失败?

1、确认手机和调试电脑是否在同一网络内,并且开放防火墙的8088、8080、3000端口。

2、确认qap.json中的页面首页是否指向了正确的qap协议地址。默认情况下应用首页为qap:///index.js,当开发者有自定义的更改时,也需要跳转首页的位置。

提示qap.config.js可能存在语法错误?

对该js文件进行语法校验,一般情况下都是粗心导致的 : )

H5预览报错createElement is only a getter?

旧版rax不支持hotreload,设置qap.config,js中的hotreload字段为false即可。

FAQ

关于此文档暂时还没有FAQ
返回
顶部