使用 Webpack Encore 将整个目录传递到 'require()' 函数中

Pass in an entire directory into the 'require()' function using Webpack Encore

Webpack Encore 对我来说是新手,我正在为静态文件而苦苦挣扎。为了使用静态文件,您必须像这样在 main.js 中要求它们:

require('images/myImage.jpg');

此文件将添加到 manifest.json,您可以使用 {{ asset(myImage.jpg) }} 引用它。如何将整个目录传递给 required() 函数?我不想一张一张地添加我所有的静态图片。

我已经试过'require-dir'library,没用。它一直输出这个错误:require.extensions is not supported by webpack.

有没有更简单的方法来实现我想要的?

您可以为此使用 require.context。假设您想将所有 img 包含在 favicon 目录中,您可以执行以下操作。

// Load all favicons in directory
require.context('../img/favicon', false, /\.png$|.ico$/);

无需将结果存储在对象中或在您的代码中使用它。 Webpack 将只包含所有匹配 .png and .ico 的文件到您配置的输出目录中。

这种方式还可以让您控制末尾正则表达式所需的文件。