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

Динамическое требование в Webpack во время сборки

Учитывая конфигурацию Webpack

...
entry: {
    'bundle-with-dependency-a': 'common-entry.js',
    'bundle-with-dependency-b': 'common-entry.js'
},
resolve: {
    alias: {
        'dep-a': ...,
        'dep-b': ...
    },
},

и я ожидал бы в common-entry.js примерно так:

require('dep-' + entryName.slice(-1));

т.е. Я хочу предоставить определение для конкретного запроса из config.

Проблема в том, что может быть более двух вариантов зависимостей, я избегаю copypasting. И я собираюсь сделать это во время сборки, вместо того, чтобы требовать куски с JSONP.

Как это может потребоваться сделать динамическим?

Единственный вариант, который у меня есть, - это иметь разную конфигурацию для каждого оттиска, но для этого требуется сделать несколько проходов Webpack вместо одиночных. Не очень удобно.

4b9b3361

Ответ 1

Используя imports-loader:

webpack.config.js

{
  entry: {
    'bundle-with-dependency-a': 'imports?depName=>"dep-a"!./common-entry.js',
    'bundle-with-dependency-b': 'imports?depName=>"dep-b"!./common-entry.js',
  },
  // ...
}

Затем переменная depName будет открыта для модуля common-entry.js.