我们正在将aurelia-cli用于单页应用程序。它具有多个用户模块的概念(基本上具有视图和视图模型的简单文件夹)。现在随着应用程序的增长,我们想要一种不预先加载所有模块的方法。例如,一个用户可能只能访问20个模块中的3个。
现在的问题是,我们如何定义模块包并仅根据运行时的条件按需加载这些模块?
我们设法通过编辑aurelia.json
文件来创建包。我们的文件如下所示
"bundles": [
{
"name": "my-module-bundle.js",
"source": [
"[**/my-module/*.js]",
"**/my-module/*.{css,html}"
]
},
{
"name": "app-bundle.js",
"source": [
"[**/*.js]",
"**/*.{css,html}"
]
},
...
这会导致" my-module"的所有代码最终成为自己的捆绑。 这也适用于如果没有代码引用" my-module"捆绑包不会被下载和执行。
但是......如果我们想根据某种情况动态加载这个模块,我们就不幸了,因为我们需要引用该模块,从而导致它下载。
有没有解决这个问题的方法?我们可以使用代码按需加载捆绑包吗?