How to update the uniforms of MeshBasicMaterial

I made a few modifications to ShaderChunk to fit my specific requirements, introducing a few uniforms to implement my features.
I needed externally accessible uniforms that could be dynamically updated. But now that ShaderMaterial was available, there was nothing I could have done with a MeshBasicMaterial. Was there any way I could have uniforms made out of anything but shaderMaterial?
I don’t want to use onBeforeCompile because it needs to recompile the shader and will make my results jitter

compile your own version of three.js with the modified native shaders and additional uniforms?
But I think the jittering come from browser performance issue. So whathever you do, it may still be there anyway.