Почему ленивая загрузка Webpack загружает все файлы из папки? - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь динамически импортировать i18n файлы, используя webpack:

function getI18n(lang) {
  return import(/* webpackChunkName "i18n/[request]" */ `./locales/${lang}.json`)
  .then(/*whatever*/)
}

Но даже до вызова этой функции в средстве разработки я вижу, что все файлы из этой папки были загружено:

  • i18n / en. json. js
  • i18n / ru. json. js
  • i18n / nl. json. js
  • i18n / nw. json. js

И т. Д. c.

Это не то, что я хочу. Я хочу динамически загружать требуемый блок во время выполнения .

Забавно, если я переименую файлы ru -> ru2 и nw -> nw2 и измените импорт, чтобы использовать путь с номером 2, например: ./locales/${lang}2.json будет загружать только файлы i18n/ru2.json.js и i18n/nw2.json.js и игнорировать тех, у кого в имени нет символа 2. Так что я думаю, что он работает с каким-то регулярным выражением вместо точного соответствия.

Спасибо

PS Честно говоря, я использую vuejs и typescript, так что проблема может быть где-то посередине. Я пытался следовать этому примеру vuei18n lazy load с моим кодом.

1 Ответ

1 голос
/ 11 января 2020

Webpack не знает, какой файл в этом каталоге вам понадобится во время выполнения, поэтому он должен включать все файлы в комплекте. (https://webpack.js.org/guides/dependency-management/#require -с выражение )

...