Условный импорт с Webpack прерывает загрузку удаленно размещенной библиотеки - PullRequest
0 голосов
/ 30 марта 2020

В нашем проекте Webpack Мы используем условный импорт для загрузки некоторых файлов после загрузки основного модуля. Это прекрасно работает при загрузке приложения в том же домене, но если скомпилированная библиотека включена приложением, размещенным в другом домене, то основной модуль будет пытаться загрузить выделенный файл JS из домена приложения, а не из домен, в котором размещена библиотека.

Например, у нас есть скомпилированная библиотека JS, размещенная на http://my-example-lib.com, и приложение, которое использует библиотеку, размещенную на http://some-sweet-app.com

В используемом нами коде:

import("some-dependencey").then(() => {
  import("./other-dependencies").then(() => {
      logger.log("javascript loaded");
  })
});

... при компиляции Webpack разделится на два пакета:

  • bundle.js который мы добавляем в тег скрипта в приложении на http://some-sweet-app.com
  • 0.bundle.js, который затем загружается на bundle.js, потому что мы использовали условный оператор импорта.

Проблема в том, что импорт http://my-example-lib.com/bundle.js в порядке, но тогда bundle.js будет ошибочно пытаться получить 0.bundle.js из http://some-sweet-app.com/0.bundle.js

Я обнаружил, что добавление тега <base href = "http://my-example-lib.com" /> перед тегом сценария для bundle.js приведет к решить проблему, но мы бы хотели более чистое исправление, которое не требует, чтобы пользователь библиотеки делал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...