Если у вас есть отображение из панели мониторинга в модуль, который его реализует, то вы можете просто динамически import()
необходимый модуль. Система модулей JS позаботится о том, чтобы не загружать уже загруженные модули, поэтому общие зависимости, такие как lit-element
, будут загружаться только один раз.
Эта дедупликация работает на основе URL, поэтому вы должны убедиться, что у вас есть одна копия зависимости, установленная через npm. npm dedupe
попытается дедуплицировать вашу папку node_modules/
, а npm ls
позволит вам увидеть дерево зависимостей.
Все текущие браузеры поддерживают динамический import()
, и большинство упаковщиков поддерживают это, пока аргумент является строковой константой. Это означает, что вы не можете вычислить URL модуля на основе панели мониторинга, если хотите использовать упаковщик. Вам нужно что-то вроде:
const dashboardLoaders = {
'dash-1': () => import('./dashboards/dash-1.js'),
'dash-2': () => import('./dashboards/dash-2.js'),
// etc...
};