-
Notifications
You must be signed in to change notification settings - Fork 599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
编码器保存功能不奏效 #135
Comments
首先定位一下问题所在, 是没成功保存文件,还是编码器代码逻辑问题. 1) 查看 antData/encoders/ 下面你编辑保存的编码器文件,是不是真的保存成功了 2)如果保存成功了,重新 reload 程序,可以在开发者控制台里面调试你的编码器代码,看下是不是编码器代码的问题。
|
测试了一下,发现编码器初次的保存是不需要reload便能生效的,而后续做的修改的确保存成功了,但是需要reload才能生效。请问对编码器后续发生的修改是否可以实现立即生效而不需要reload呢。 |
用的都是同一个方法 antSword/source/modules/settings/encoders.js Lines 240 to 245 in 6cdd78e
具体为何产生这样原因,我这边复现不出来,你那边能打个断点追一下原因吗? |
经过调试发现问题在于编码器的require引入。nodejs require存在缓存机制,无法检测到文件变化。因此问题不在于编码器是否是第一次保存;而在于该编码器若被require引入过一次,后续的内容改变皆无法生效,返回的依然是第一次引入的文件内容。 Lines 183 to 187 in 6cdd78e
因此需要在每次重复引用之前删除对应缓存。在186行前插入如下代码即可 delete require.cache[require.resolve(`${enc}`)]; 或者也可以尝试在编码器内容发生改变时,删除该编码器的require缓存(也许这个方法更好)。 |
thx 👍 |
报告 Bug
Bug 详细描述
在编写一个新的编码器并初次保存后,该编码器可正常使用。但是在后续对编码器进行修改编辑并保存时,虽然显示保存成功,然而经过多次的测试和wireshark的抓包分析,结果是我对该编码器所做的后续修改都没有奏效。
The text was updated successfully, but these errors were encountered: