【发布时间】:2021-05-19 20:27:27
【问题描述】:
Webpack v4.42.0
我试图让 webpack 在 html img 标签中获取我的图像资产,但它似乎不尊重我的 webpack 解析别名。据我在其他帖子中看到的,我应该能够在字符串前面加上 ~ 字符,但它似乎对我不起作用。
我收到以下错误:Error: Cannot find module '@assets/img/avatar_default.jpg'
这有效(相对路径):
<img src="../../../assets/img/avatar_default.jpg" />
这不起作用(别名):
<img src="~@assets/img/avatar_default.jpg" />
我的 webpack 配置了以下别名:
resolve: {
alias: {
'@': path.resolve(fs.realpathSync(process.cwd()),
'@assets': path.resolve(__dirname, 'src/assets/'),
}
}
还有我的 html-loader 配置:
{
loader: 'html-loader',
options: {
minimize: false,
preprocessor: (content, loaderContext) => {
// Allow using EJS/underscore templating to process templates
// This is usually used for differences between different app builds (e.g. app vs. admin)
let result;
try {
result = ejs.render(content, {
_WHICH_APP_,
});
} catch (error) {
loaderContext.emitError(error);
return content;
}
return result;
},
}
}
【问题讨论】: