Многопроектная сборка и динамическая загрузка модулей с помощью веб-пакета

У меня есть потенциально большое приложение Angular 2, которое мы собираемся разбить на несколько частей (его можно рассматривать как пакеты в терминологии WebPack). Более того, мы собираемся строить и развертывать их отдельно. Таким образом, различные части приложения могут быть динамически загружены из основного приложения (не в пределах одного и того же веб-приложения - в нескольких запущенных службах, которые могут находиться на разных физических хостах).

Webpack делает пакетирование довольно быстро и хорошо. Но, как я знаю из вывода, он использует сложный внутренний формат (используя номера модулей, сопоставленные с реальными путями / именами). Также разделение кода выполняется с помощью некоторой магии путем сопоставления идентификаторов модулей с именами чанков, которые затем могут быть динамически загружены.

Проблемы здесь с веб-пакетом я вижу:

Если он использует числа для сборки, я не могу легко построить отдельные части, которые могут повторно использовать некоторые модули, так как номера модулей могут конфликтовать. Я знаю о recordsPath, но это как хак в многопроектной системе (как в этом случае мне нужно поддерживать и поддерживать записи для всей системы).Я не могу просто динамически загружать / импортировать любой внешний модуль с помощью веб-пакета (что мне нужно, чтобы он работал, как это сделано в System.js - System.import ('HTTP: // локальный: 9900 / данные / index.jsили что-то в этом роде. Это на самом деле не работает в веб-пакете. Я могу эмулировать это путем разделения кода, но это означает, что он просто отделяет некоторую часть существующего (не внешнего) кода, и вы не можете сделать это для внешнего приложения.Я не могу легко повторно использовать общие модули в разных проектах. Например У меня может быть модуль 'A' в основном проекте, и у меня могут быть проекты p1 и p2, которые должны импортировать 'A'. Я мог бы сделать «А» как внешний, но это может быть просто небольшой сервис из основного приложения.

Так что есть идея, если это возможно, используя webpack1 / 2, или я должен смотреть на такие инструменты, как jspm, System.js, browserify и т. Д.? Мне нравится, как webpack выполняет свою работу (настраивает, гибкая, работает быстро и может объединять многие вещи), но эти проблемы усложняют такие варианты использования.

Заранее спасибо.

Ответы на вопрос(0)

Ваш ответ на вопрос