下载地址
https://developers.weixin.qq.com/miniprogram/dev/devtools/rc.html
增强编译
新版工具增加了增强编译
的选项来增强ES6转ES5
的能力,启用后会使用新的编译逻辑以及提供额外的选项供开发者使用。
启用增强编译
后的编译能力的对比:
特性 | 原有逻辑 | 增强编译 |
---|---|---|
Babel版本 | babel6 | babel7 |
Presets | es2015、stage0 | env {chrome:53, ios:8} |
Helpers | 单文件内联 | 跨文件共享 |
Async/Await | 不支持 | 支持 |
严格模式开关 | 不支持 | 支持 |
忽略文件目录 | 不支持 | 支持 |
代码压缩 | uglify-js | terser |
Babel插件 | - | 一系列proposal* |
polyfill | 大部分es6 | 新增三个polyfill* |
使用
preset-env
,支持最新的ECMAScript
语法共享helpers函数,默认放在项目
@babel/runtime
目录,可通过项目配置文件
配置支持async/await语法,按需注入
regeneratorRuntime
,目录位置与helpers函数一致文件首行是
// use strict disable;
时,即可禁用文件严格模式可通过
项目配置文件
指定任意文件、目录不经过编译(如:miniprogram_npm)原有逻辑是支持
stage0
语法的,为了向前兼容,引入了一系列proposal插件关于polyfill,基础库中已经引入了大量的
es6
相关的polyfill 可参考文档,增强编译下,新增:Array.prototype.includes(es7)
、Object.entries(es8)
、Object.values(es8)
开启增强编译
项目详情页中,勾选增强编译
选项
打开后,即可在项目中使用最新的js语法
工具运行时,会按需注入一些辅助函数和regeneratorRuntime, 注入的目录路径可通过配置修改,上传代码时(包括预览时)这些文件会作为代码包的一部分
其他选项
其他可选项详情请参考项目配置文档
任务通知中心
任务完成后的消息通知会自动进入通知中心,通知中心入口在右下角的任务状态栏
任务状态栏也进行了优化,以图标形式显示正在进行中的任务、失败任务数、及通知中心入口。
控制台命令 cleanAppCache
在新版中,我们升级了 nw 内核,如果回退到旧版本,会在启动旧版本时出现提示 nw 版本不匹配的弹框,如需回退且避免这种情况,可在回退前在小程序调试器输入命令 cleanAppCache,然后再安装旧版本。
上传时版本号推荐
上传的对话框现在会显示版本号推荐
控制台显示当前页面是否被索引
代码保护现在默认打开
开启代码保护之后可以增加编译后的代码包的破解难度,在详情页中可以设置是否开启。
设置中增加通用设置
Network 面板显示图片
渲染层的图片请求现在也会展示在 Network 面板。
Nightly 快速更新机制
Nightly 版本是包含我们最新能力和 bugfix 的版本。现在 Nightly 版本支持快速更新和快速回退。安装了 Nightly 版本开发者工具后,如果再进行了升级,此时可以在菜单的检查更新下会有快速回退的选项,可以快速回退到上一个版本。
之前版本老是告诉我"小程序重启耗时过久,请确认业务逻辑中是否有复杂运算,或者死循环"或者直接黑屏,我都不知道我干了啥,有时候项目刚起来就来个这玩意,是你们自己的代码有死循环吧
新版本刚打开就报这个
我也是,怎么解决
最搞笑的是,我打开官方示例代码也提示这个
如果使用了多开项目,现在的机制多开的项目中小程序的运行时是使用了同一个进程,所以其中一个项目断点,或者运行缓慢,会影响到另外一个项目的小程序运行。
后续我们会让不同项目的小程序运行时使用不同的进程,就能解决这个问题
但是我没有多开,就一个项目一个开发工具窗口,也是这样的,而且没有断点,我的截图是项目刚打开就这样的
问题太多,已退回稳定版了。建议不要更新安装
getMenuButtonBoundingClientRect方法返回的信息错误,直接导致自定义菜单高度不对
bottom: 609
height: 32
left: 278
right: 10
top: 26
width: 87
bottom都到600了。。
弱弱问句,bug多吗?
在BUG方面。这个工具是专业的。
被你逗笑了。
提个bug 开发者工具 webview 图片未适配 :
真机正常:
我觉得小程序开发者工具还是挺好的,除了有时候Ctrl+F搜索框打不了字,打开页面打不了代码,或者不能在开发者工具用复制粘贴,还有有时候莫名其妙会卡死(也许是我电脑问题)等以外,还是挺好的....(/滑稽护体)
这个Nework面板,加载一会就变这样了
编译预览的时候,直接卡在某个文件
文件内容:
const getLocalStoreVal = async key => {
let _res =
null
;
try
{
_res = wx.getStorageSync(key);
}
catch
(err) {
return
Promise.reject(err);
}
return
Promise.resolve(_res);
};
const setLocalStoreVal = async (key, value) => {
try
{
wx.setStorageSync(key, value);
}
catch
(err) {
return
Promise.reject(err);
}
return
Promise.resolve();
};
export { getLocalStoreVal, setLocalStoreVal };
大概编译5分钟后成功
这个是开启增强编译才有问题?
我试了一下不打开的话
也会在这个文件稍微卡一会,但是不会很久
同样的情况,请求都发出了,状态都是200,但是过了几分钟才返回,期间提示运行时间过长,怀疑复杂运算和死循环
微信开发者工具是最垃圾的,问题太多,太卡了,动不动内存全部占满,而且编译很慢,是否增强编译都很慢,电脑配置也还可以,I5 16G内存,在调试栏要选中定位标签位置很慢,在调试栏直接修改调试样式根本就不用想
打开增强编译后,对于文件数量比较多的项目,编译一次要1分钟
描述:
保存文件 =》 编译器大概2秒 =》 开始白屏(估计再编译) =》 38秒有console了 =》 40秒后出现页面
视频地址:https://pig-imgs.inairdrop.top/QQ20190509-112007-HD.mp4
console输出:
没开的情况:
正常是3 ~ 5秒,虽然很慢了,不过习惯了
打开、关闭增强编译,都会触发一次全量文件重新编译。前者使用新编译方式,后者使用原有逻辑,你是说这里一个1分钟,一个3-5秒?
在某个模式下,点击编译按钮,是增量编译,只编译变更文件。
这里不是第一次,是之后,编译特别的慢
而且会一直触发[Violation] 'setTimeout' handler took <N>ms
然后看文件调试是正常
这个是调试微信开发者工具
项目文件数量大概是多少?
只是猜测和项目文件数量有关哈
文件个数:1289 包含npm
页面路由数: 40
组件数量:37
js文件数量:500 包含npm
就是没开时候的体验变化太明显了
插件模式下
点击确定后 无反应 开发工具内所有区域都无法继续点击 应该是被弹窗遮罩了 但又看不见这个弹窗 啊啊啊啊啊啊啊啊啊啊啊啊啊
你好,问题已复现,我们将尽快修复