【发布时间】:2020-04-28 04:20:31
【问题描述】:
我正在尝试使用 webpack 动态导入 i18n 文件:
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 -> ru2 和 nw -> nw2 并将导入更改为使用编号为 2 的路径,如下所示:./locales/${lang}2.json 它只会加载文件 i18n/ru2.json.js 和 i18n/nw2.json.js 并且将忽略名称中没有 2 字符的那些。所以我猜它是用某种正则表达式而不是完全匹配来操作的。
谢谢
P.S.老实说,我使用vuejs 和typescript,所以问题可能介于两者之间。我一直在尝试使用我的代码来遵循这个示例vuei18n lazy load。
【问题讨论】:
-
你什么时候打电话给
getI18n() -
到目前为止我还没有调用它,应该在单击按钮时调用它。即使该功能从未使用过但已被导出 - 导入的东西正在发生
标签: typescript vue.js webpack vuejs2 lazy-loading