Uncaught TypeError: ‘caller‘, ‘callee‘, and ‘arguments‘ properties may not be accessed on strict mod

在项目中借助MUI中的tab-top-webview-main.html的时候滑动条无法正常触发滑动,通过检查官方文档,发现这是JS组件,需要被初始化一下:
  • 导入mui.js
  • 调用官方提供的方式初始化:
 //初始化scroll控件
 mui('.mui-scroll-wrapper').scroll({
	deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
});
结果出现了“Uncaught TypeError: ‘caller‘, ‘callee‘, and ‘arguments‘ properties may not be accessed on strict mode”的问题:

在这里插入图片描述
意思就是说:mui.js中用到了‘caller’,‘callee’,and’arguments’,但是webpack打包好的bundle.js中默认是启用严格模式的,所以这两者冲突了;

解决方案:

1.把mui.js中的非严格模式的代码改掉,但是不太可能
2.把webpack打包时候的严格模式禁用掉

使用babel-plugn-transform-remove-strict-mode插件移除严格模式

  • 使用命令npm install babel-plugin-transform-remove-strict-mode装包
  • 使用:

1.如果使用的是Via .babelrc(推荐)

.babelrc:

{
  "plugins": ["transform-remove-strict-mode"]
}

2.如果使用的是 Via CLI

$ babel --plugins transform-remove-strict-mode script.js
  1. 如果使用的是Via Node API
require("babel-core").transform("code", {
  plugins: ["transform-remove-strict-mode"]
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值