Подтвердить что ты не робот

Критические зависимости - запрос зависимости - это выражение Webpack

Я использую службу в своем приложении angular для создания uibModal следующим образом

function modal(modalConfig){
                  var modalInstance = $uibModal.open({
                  animation: true,
                  template: require("../a/b/xyz.html"),
                  controller: modalConfig.controller,
                  size: modalConfig.size,
                  controllerAs: modalConfig.controllerAs,
                  bindToController : true,
                  resolve: modalConfig.resolveObj

                });
            }

Обратите внимание на строку

 template: require("../a/b/xyz.html"),

Я хочу использовать переменную на своем месте, подобную этой

 template: require(modalConfig.templateUrl),

но когда я использую переменную вместо жестко закодированного значения webpack, мне дают

Critical dependencies:
83:22-54 the request of a dependency is an expression

Я не могу разрешить эту ошибку. Какова может быть причина?

Я использовал сервер node-express для непрерывной сборки webpack. Я также посмотрел на другие ответы, но они не решили мой запрос.

4b9b3361

Ответ 1

После многих ударов и испытаний найдено решение. Что я сделал, так это:

template: require("../../scripts" + modalConfig.templateUrl + ".html")

Допущения

  • Корневая папка, в которой находится весь файл, находится scripts
  • и относительный путь этой папки из файла, в котором написана функция, скажем ../../scripts.
  • ../../scripts + modalConfig.templateUrl + ".html" создаст правильный путь для файла, который будет использоваться.

Обязательная записка

  • Всегда записывайте жесткий путь к корневой папке. Не ставьте его в переменную. поэтому это не сработает

    var context = "../../scripts" ; template: require(context + modalConfig.templateUrl + ".html")

Базовый путь (как в части фактического пути) должен быть жестко запрограммирован для базовой ссылки, так как в нем помогает webpack создать список всех модулей, которые могут потребоваться для динамического использования.

Причина (из webpack docs), читайте dynamic требует и контекстный модуль.