В моем понимании импорт одной и той же библиотеки для разных файлов это просто захламление памяти, т.е. как я себе это представляю: есть 20 файлов, использующих 1 библиотеку, соответственно для каждого из них библиотека будет копироваться в память и получается у нас будет 40 файлов в памяти.
Ну, это не совсем так.
Если вы импортируете что-то из одного файла несколько раз, это не значит что браузер несколько раз загружает и обрабатывает модуль. Нет. Он загружается и испольняется один раз, и многократно передаёт вам из контекста то что вы импортируете. Так, что многократный импорт не приведёт у перегрузке памяти.
Но оптимизировать всё таки можно.
Вместо этого
import * as THREE from './three.module.js'
new THREE.PlaneBufferGeometry(planeSize, planeSize);
Делай вот так:
import {PlaneBufferGeometry} from './three.module.js'
new PlaneBufferGeometry(planeSize, planeSize);
Это даст очень мизерный эффект, но всё таки даст. Браузеру не нужно будет передавать в твой контект вообще всё, а только то, что импортировал. Но исходный файл всё равно будет загружаться и обрабатываться полностью.
Дальше, можно заюзать rollup.js
Вот с его то помозью вы и получите то, что хортите:
Он автоматически скопирует все ваши импорты в один файл, удалит всё что вы не импортируете и не используете. И итоговый результат намного меньше бандла webpack