为什么Webpack延迟加载从文件夹加载所有文件?

问题描述 投票:0回答:1

我正在尝试使用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

等等

这不是我想要的。 我想在运行时动态地延迟加载所需的块

有趣的是,如果我要重命名文件ru-> ru2nw-> nw2并更改导入以使用编号为2的路径,例如:./locales/${lang}2.json它只会加载文件i18n/ru2.json.jsi18n/nw2.json.js会忽略名称中没有2字符的用户。因此,我想它可以使用某种正则表达式而不是完全匹配来运行。

谢谢

P.S。老实说,我使用vuejstypescript,因此问题可能在两者之间。我一直在尝试将此示例vuei18n lazy load与我的代码一起使用。

typescript vue.js webpack vuejs2 lazy-loading
1个回答
1
投票

Webpack不知道您在运行时需要该目录中的哪个文件,因此它需要将包中的所有文件包括在内。 (https://webpack.js.org/guides/dependency-management/#require-with-expression

© www.soinside.com 2019 - 2024. All rights reserved.