我有一个对我来说意义不大的问题。
我正在映射一组具有“名称”和“href”属性的对象。
let appleIcons = _.map(appleIcons, appleIcon => {
appleIcon.href = require(appleIcon.href);
return appleIcon;
});
在循环内部,我想要获取图像,但它抛出错误“.*$:11 未捕获错误:找不到模块”。
当我打印 appleIcon.href 的值并尝试将它直接放入 require('') 时,它起作用了。
appleIcons = _.map(appleIcons, appleIcon => {
appleIcon.href = require('./../../mobile-config/apple-icon-57x57.png');
return appleIcon;
});
那么您能解释一下为什么第二个示例有效而第一个示例抛出错误吗?我如何将变量放入 require('') 中?
谢谢!
最佳答案
由于 Webpack 在构建时运行,当名称是动态变量时,它无法确定要捆绑哪些模块。您可以通过指定部分路径来给它提示(例如,如果您知道所有模块都在一个目录中)。
这个答案可以帮助: https://stackoverflow.com/a/33048000
(也可以通过 Webpack 检查 require.context。另一个例子是业力测试,here。)
或者 - 如果您预先知道文件名,最好添加另一个构建步骤以将它们输出到文件中,这样 Webpack 就可以捆绑它们。
关于javascript - 将 require ('...' ) 与变量一起使用与在 webpack 中使用字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37241662/