将变量传递给 require.context?

Ste*_*n-v 8 javascript webpack webpack-dev-server webpack-2

我需要一个带有 webpack 的目录中的所有文件,如下require.context所示:

export default class Svg {
    constructor() {
        const icons = require.context('example/images', true, /\.svg$/);
    }
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想将路径传递给我的构造函数,并require.context使用构造函数值(如果给定)或默认值(如果未给定)设置路径。

使用这样的变量会导致错误:

const icons = require.context(path, true, /\.svg$/);
Run Code Online (Sandbox Code Playgroud)

./src/Svg.js
11:20-27 中的警告关键依赖项:require 函数的使用方式无法静态提取依赖项

有没有办法解决这个问题,或者我只是在这里滥用 require.context 功能?

pld*_*ldg 10

不幸的是你不能,因为它必须是静态可分析的。

阅读webpack 问题 #4772

这可能会在未来的版本中改变,现在 Webpack 是第 4 版。