Webpack как экспортировать что-то, когда запись является массивом - PullRequest
1 голос
/ 13 июня 2019

Если я делаю обычные вещи и имею путь к строке, экспорт по умолчанию работает:

entry: {
  'someExportName': './src/index.js'
}

Однако я пытаюсь реорганизовать устаревший проект, который экспортирует несколько файлов CSS, один из них имеетто же имя, что и у файла JS:

entry: {
  'someExportName': ['./src/index.js', './src/themes/default.less'],
  'someExportName.nonDefaultTheme': './src/themes/nonDefaultTheme.less',
}

Проблема в том, что если я использую массив, хотя я получаю someExportName.js и someExportName.css, Webpack больше не знает, что должен делать экспорт библиотеки по умолчаниюбыть.В сгенерированном коде это выглядит так:

return __webpack_require__(__webpack_require__.s = "./src/index.js");

Кому:

return __webpack_require__(__webpack_require__.s = 0);

Я думаю, мне придется создать файл CSS с другим именем, а затем переименовать его после,но мне интересно, есть ли в webpack нехакерный способ выбора, что экспортировать, когда мы используем массив?Спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

При использовании массива в качестве значения записи последний элемент - это то, что экспортируется пакетом, созданным для этой записи.

Итак, переместите файлы JS в конец соответствующего массива записей:

entry: {
  'someExportName': ['./src/themes/default.less', './src/index.js'],
  'someExportName.nonDefaultTheme': './src/themes/nonDefaultTheme.less',
}
0 голосов
/ 13 июня 2019

Звучит так, будто ответ @ sdgluck должен сработать, действительно, я тоже нашел его здесь написанным - https://github.com/webpack/webpack.js.org/issues/1703

К сожалению, мне не повезло. Я сделал для CSS-файла, который должен иметь то же имя, я импортировал его в ./src/index.js, чтобы в сочетании с MiniCssExtractPlugin был создан файл CSS с тем же именем, и я могу избежать использования массива.

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