Failed to use `ShaderMaterial` with other materials on the same mesh

I want to use multi materials on the same mesh.
It is ok to use combinations of MeshPhoneMaterial, MeshBasicMaterial, MeshNormalMaterial, etc.
But with ShaderMaterial, the combination will not work as expected.
Example: https://jsfiddle.net/sz96qwbm/

How can I use ShaderMaterial with other material at the same time?