2020-02-28 00:49:47 +08:00
|
|
|
const svgToMiniDataURI = require("mini-svg-data-uri");
|
|
|
|
const mimeTypes = require("mime-types");
|
|
|
|
|
2021-01-05 18:11:02 +08:00
|
|
|
/** @type {import("../../../../").Configuration} */
|
2020-02-28 00:49:47 +08:00
|
|
|
module.exports = {
|
|
|
|
mode: "development",
|
|
|
|
module: {
|
|
|
|
rules: [
|
|
|
|
{
|
|
|
|
test: /\.(png|svg|jpg)$/,
|
|
|
|
type: "asset/inline",
|
|
|
|
generator: {
|
|
|
|
dataUrl: (source, { filename, module }) => {
|
|
|
|
if (filename.endsWith("?foo=bar")) {
|
|
|
|
if (typeof source !== "string") {
|
|
|
|
source = source.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
return svgToMiniDataURI(source);
|
|
|
|
}
|
|
|
|
|
|
|
|
const mimeType = mimeTypes.lookup(module.nameForCondition());
|
|
|
|
const encodedContent = source.toString("base64");
|
|
|
|
|
|
|
|
return `data:${mimeType};base64,${encodedContent}`;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
};
|