Как определить, выполняется ли мой код как пакет Webpack - PullRequest
0 голосов
/ 11 февраля 2019

В настоящее время я экспериментирую со следующей стратегией для динамической загрузки файла json по пути относительно моего модуля:

  • Если мой код упакован как пакет Webpack, используйте import(filename.json)
  • В любом другом случае вернитесь к вызову AJAX с абсолютным путем

Кажется, что работает следующее:

function parse (fileName, callback) {
  var path = "./relative/path/to/" + fileName + ".json";
  var cb = process.bind(this, fileName, callback);
  if (typeof webpackJsonp !== "undefined") { // <-- Test if run as Webpack bundle
    // Do dynamic import
  } else {
    // Do Ajax call
  }
}

Однако я могуОднако не могу найти никакой документации по webpackJsonp, поэтому я предполагаю, что это не является частью общедоступного API Webpack.

Я также заметил, что webpackJsonp - это функция в 3.12 и Object (унаследованная отArray) в 4.28, указывающий на то, насколько хрупким является наличие, значение или тип webpackJsonp.

Существует ли (надежный на будущее) способ проверки того, выполняется ли мой код какпакет Webpack, использующий общедоступный API?

По сути, чем заменить typeof webpackJsonp !== "undefined" на тот же эффект, но с использованием общедоступного API?

Кроме того, у меня также есть некоторыепроблемы с получением реального импорта для работы в Webpack 4.28.Для этого смотрите import () breaks в Angular 7.2.3 + Webpack 4.28 .

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