如何将变量传递给require.context?

8
我需要使用webpack的require.context从一个目录中获取所有的文件,代码如下:
export default class Svg {
    constructor() {
        const icons = require.context('example/images', true, /\.svg$/);
    }
}

这个工作很好,但我想将路径传递给我的构造函数,并使用构造函数的值(如果已给出)或默认值来设置require.context路径。
然而,像这样使用变量会导致错误:
const icons = require.context(path, true, /\.svg$/);

警告:./src/Svg.js
11:20-27 依赖关系严重:以无法静态提取的方式使用了 require 函数

是否有方法可以解决这个问题,或者我只是在滥用 require.context 功能?


这应该可以正常工作。您曾说过,“像这样使用变量会导致错误”,而消息中写着“警告”,甚至都是大写的。我是否遗漏了什么,还是您将此警告消息解释为错误? - Marko Gresak
1个回答

11

很遗憾,你不能这样做,因为它必须是静态可分析的。

请阅读Webpack问题#4772

这可能会在未来版本中改变,现在Webpack已经更新到4版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接