我在互联网上搜索了一个使用文件加载器和 svg-inline-loader 加载 svgs 的解决方案。更重要的是,我希望选择单独使用两者,但我似乎无法正确设置 webpack.config。到目前为止,这是我的配置:
module.exports = {
entry: {
app: Path.resolve(__dirname, '../src/scripts/index.js')
},
module: {
rules: [
{
test: /\.mjs$/,
include: /node_modules/,
type: 'javascript/auto'
},
{
test: /\.(svg)(\?.*)?$/,
use: {
loader: 'svg-inline-loader?classPrefix',
}
},
{
test: /\.(ico|jpg|jpeg|png|gif|eot|svg|otf|webp|ttf|woff|woff2)(\?.*)?$/,
use: {
loader: 'file-loader',
options: {
name: '[path][name].[ext]'
}
}
}
]
},
};
而我想要实现的是能够做到这两点:
<img id="logo" src="../assets/img/my.svg" alt="My Svg" />
这很好地将svg加载为img。
和
import mySvg from "../assets/img/my.svg";
这给了我 svg 内容。
我当前配置的问题是一个打破了另一个。我可能正在做一些愚蠢的事情或以错误的方式实现它,无论哪种方式,我都需要建议、帮助或任何可能使可能性发挥作用的东西......或者我必须坚持一个,这不是偏好。
提前致谢!
哦,我的临时而不是那么首选的解决方案是svg-inline-loader
从配置中删除并使用以下命令将它们导入我的 js 中:
import mySvg from "-!svg-inline-loader?classPrefix!../assets/img/my.svg";