在 webpack 5 中保留子目录
Preserve subdirectories in webpack 5
我有一个问题,但我没有找到任何东西(对于 WebPack 5)
我在我的 images
文件夹中创建了一个名为 svg
的文件夹,但是当 webpack 将它编译到 dist
文件夹中时,所有图像都被压平到那个图像文件夹中。
有什么东西可以保留子目录吗? (在 webpack 5 中)
{
test: /\.(png|jpe?g|gif|webp)$/i,
type: "asset/resource",
generator: {
filename: "images/[name][ext]",
},
}
谢谢
我找到了解决方案,
filename
属性 可以是一个函数,通过这个 属性 我们可以得到完整的路径,稍作改动就可以保留子目录。
{
test: /\.(png|jpe?g|gif|webp)$/i,
type: "asset/resource",
generator: {
filename: (name) => {
/**
* @description Remove first & last item from ${path} array.
* @example
* Orginal Path: 'src/images/avatar/image.jpg'
* Changed To: 'images/avatar'
*/
const path = name.filename.split("/").slice(1, -1).join("/");
return `${path}/[name][ext]`;
},
},
}
我有一个问题,但我没有找到任何东西(对于 WebPack 5)
我在我的 images
文件夹中创建了一个名为 svg
的文件夹,但是当 webpack 将它编译到 dist
文件夹中时,所有图像都被压平到那个图像文件夹中。
有什么东西可以保留子目录吗? (在 webpack 5 中)
{
test: /\.(png|jpe?g|gif|webp)$/i,
type: "asset/resource",
generator: {
filename: "images/[name][ext]",
},
}
谢谢
我找到了解决方案,
filename
属性 可以是一个函数,通过这个 属性 我们可以得到完整的路径,稍作改动就可以保留子目录。
{
test: /\.(png|jpe?g|gif|webp)$/i,
type: "asset/resource",
generator: {
filename: (name) => {
/**
* @description Remove first & last item from ${path} array.
* @example
* Orginal Path: 'src/images/avatar/image.jpg'
* Changed To: 'images/avatar'
*/
const path = name.filename.split("/").slice(1, -1).join("/");
return `${path}/[name][ext]`;
},
},
}