Загрузка предварительно скомпилированных пакетов во время выполнения в приложении JS

В настоящее время у меня есть приложение React, созданное с помощью Webpack 1.15.0.

Я хочу загрузить в свое приложение один или несколько предварительно скомпилированных пакетов во время выполнения, как в системе плагинов. Основное приложение не знает названий этих пакетов, но знает, что они будут в определенном каталоге.

Я нашел это решение: Решение: динамически загружать независимо скомпилированные пакеты Webpack 2 но это кажется немного сложным.

Могу ли я сделать это проще, используя Webpack, Fusebox, Parcel или любой другой инструмент?


person Andrea Chiarelli    schedule 05.06.2018    source источник
comment
FuseBox может динамически загружать любые файлы javascript или json с помощью оператора импорта. Пока этот файл содержит module.exports, он будет импортирован как обычный модуль.   -  person user3677173    schedule 05.06.2018
comment
Вы слышали о модулях с отложенной загрузкой?   -  person PlayMa256    schedule 05.06.2018
comment
@MatheusSilva Насколько я знаю, лениво загружаемые модули должны быть известны во время компиляции. Мне нужно предоставить модуль во время выполнения. Основное приложение не знает их во время компиляции   -  person Andrea Chiarelli    schedule 05.06.2018
comment
@ user3677173 Загружает ли FuseBox внешние скомпилированные модули или компилирует внешние модули на лету? Не могли бы вы привести пример или ссылку на какую-нибудь документацию?   -  person Andrea Chiarelli    schedule 05.06.2018
comment
fuse-box.org/page/dynamic-import Он обеспечивает экспорт в модуль. Поэтому вам нужно будет перенести этот модуль на es5. Однако вы можете подключить к нему дополнительный препроцессор.   -  person user3677173    schedule 05.06.2018
comment
Спасибо @ user3677173. Это похоже на приемлемое решение. Однако, поскольку я связал ES5 JavaScript, как я могу экспортировать его как модуль commonjs? Другими словами, есть способ динамически импортировать скомпилированные пакеты, которые не являются модулями commonjs?   -  person Andrea Chiarelli    schedule 07.06.2018


Ответы (1)


Благодаря помощи nchanged я нашел решение моей проблемы на основе Fusebox.

Я создал простой POC на GitHub, чтобы показать, как настроить два проекта, чтобы разрешить динамическую загрузку предварительного скомпилированный бандл.

Я надеюсь, что это может быть полезно для кого-то еще.

person Andrea Chiarelli    schedule 12.06.2018