threejs本身体积有100+KB,在使用webpack的项目中自然会想到把它作为external来引入。但这种方式引入存在两个需要注意的点:
- 在controls中(比如
TrackballControls)会丢失表示按键的常量,在TrackballControls中是代表鼠标按键的常量,会导致无法使用鼠标进行镜头控制,而触控正常。此时只需将对应常量写入controls文件中即可。TrackballControls中加入以下常量的声明即可解决问题。
MOUSE = {
LEFT: 0,
MIDDLE: 1,
RIGHT: 2,
ROTATE: 0,
DOLLY: 1,
PAN: 2
};
- 如果你使用
react,且包含threejs内容的组件经常需要被加载和卸载,那么请千万不要将threejs放入webpack externals中,这会导致threejs无法被正常卸载,从而在后台占用大量计算资源。目前原因未知,但只要将threejs从externals中清除,问题就可以得到解决。