我知道有一些解决方案可以通过 javascript using 进行检索System.import
,但是我想使用指令版本,因此我们不必为每个模板创建一个控制器。
我想要实现的是提取作为条目文件发送的所有文件的列表,具有特定的扩展名,并获取它们的捆绑名称。
为简单起见,假设我有 3 个文件:
module-a.lazy.js
module-b.lazy.js
main.entry.js
假设我的入口点和输出定义如下:
var config = {
entry: {
module-a: "./module-a.lazy.js",
module-b: "./module-b.lazy.js",
bundle: "./main.entry.js"
},
output: {
filename: "[name]-[hash:4].js",
path : '/build'
}
}
显然,我将在我的构建文件夹中得到 3 个文件,每个文件的文件名中都有一个自定义动态哈希,我无法将其输入到 ocLazyLoad 指令中。
在 main.entry.js 文件中,我有一个常量设置,我想用惰性文件的输出名称替换它。
angular.module('demo', [])
.constant('lazies', '%lazyfilenamehere%');
预期的输出将是这样的:
angular.module('demo', [])
.constant('lazies', ['/build/module-a.lazy-af34.js','/build/module-b.lazy-fdg3.js']);
一旦我可以获得输出路径名并将它们存储在主包中,我可以轻松地装饰原始的 ocLazyLoad 指令,首先通过部分字符串搜索这个数组,匹配时它可以返回整个文件名并正常请求它。