小程序在使用plugin后的编译问题?
最近我们覆写了原生Promise做了一些处理,如果在小程序不引入plugin的情况下,Promise正常被覆写,功能也正常。但是不论在主包和子包内,只要引入任意plugin(甚至不使用),Promise则会被覆写失败,这种情况在真机和开发者工具都能稳定复现。请问使用插件前后的编译模式有什么区别? 代码片段: https://developers.weixin.qq.com/s/dX02rtmB76Iz 复现步骤: 1.新建utils/sdk.js,插入如下代码: Promise = class extends Promise {}
module.exports = {
Promise
}
2.在app.js中仅引入 const { sdk } = require('./utils/sdk');
3.在app.json中引入插件 {
...
"plugins": {
"routePlan": {
"version": "1.0.19",
"provider": "wx50b5593e81dd937a"
}
}
}
5.在pages/index.js中增加data Page({
data: {
promise: Promise.toString()
}
})
6.在pages/index.wxml中增加如下代码,打印在页面上方便显示 <view>{{promise}}</view>
7.查看结果 // 页面显示该结果
function Promise() {[native code]}
// 预期结果
function _class() {_classCallCheck2(this,_class);return _super.apply(this,arguments);}
注意事项: 在app.json删除plugin的时候需要手动清除下缓存开发者工具要关闭“启用独立域进行调试”,该选项打开则不会被复现,但根据官方文档,该选项不影响真机