mind-elixir-core icon indicating copy to clipboard operation
mind-elixir-core copied to clipboard

钩子函数失效

Open a2239135244 opened this issue 3 years ago • 7 comments

打包之后钩子函数失效,before中的钩子函数不触发

a2239135244 avatar Aug 08 '22 01:08 a2239135244

有什么报错吗?

SSShooter avatar Aug 08 '22 01:08 SSShooter

感谢您的回复,问题如下: 打包之后: 在 src/index.ts 文件中第343行 beforeHook 函数中,读取 fn.name 属性为空,导致判断失效,无法触发(await this.before[fn.name].apply(this, args) 这条判断

在开发环境下,是正常的

a2239135244 avatar Aug 08 '22 02:08 a2239135244

我现在的暂时没有找到 fn.name 打包之后属性值为空的原因,怀疑是打包之后参数变成了匿名函数导致 fn.name 失效 ,现阶段的解决方案是将 insertSibling: beforeHook(insertSibling), 改变为 insertSibling: beforeHook(insertSibling, 'insertSibling'), 多传递一个参数,用第二个参数来代替 fn.name

现阶段这个方案不太优雅 😂 ,期待插件更新

a2239135244 avatar Aug 08 '22 02:08 a2239135244

😂我研究研究

SSShooter avatar Aug 08 '22 02:08 SSShooter

a2239135244 avatar Aug 08 '22 02:08 a2239135244

哦……大概是混淆之后传入 beforeHook 的变量名称被改了,大概是只能多传一个字符串了

SSShooter avatar Aug 08 '22 03:08 SSShooter

好的

a2239135244 avatar Aug 08 '22 07:08 a2239135244