部分解决方案
感谢Diogo Sgrillo在评论中指出了这个解决方案。
安装raw-loader
yarn add raw-loader --dev
webpack.mix.js
添加以下配置(在我的情况下,所有文件都将以 .stub
扩展名命名):
mix.webpackConfig({
module: {
rules: [
{
test: /\.stub$/i,
use: 'raw-loader',
},
],
},
});
还要在webpack.mix.js
中添加一个单独的管道,像这样:
mix.js('src/templates/index.js', 'src/templates.js')
它将编译 index.js
文件中的模板列表,并将它们放入 templates.js
中。
src/templates/index.js
let stubs = require.context('./', true, /\.stub$/i);
exports.stubs = stubs.keys().reduce((result, key) => {
return {
[key.replace(/\.\//,'').replace(/\.stub$/,'')] : stubs(key).default,
...result
}
}, {});
export default { }
稍后可以这样使用:
let templates = require('./templates.js')
console.log(templates['User.php'])
请在下方评论或添加另一个答案,以了解如何更顺畅地完成此操作。`exports/export`有什么区别?我不能使用`import`方法,只能使用`require`方法,并且如果我尝试使用`export default`(或删除`export default`),它就会中断。