如何解决使用 Node 将图像转换为 webp
我有一个将图像转换为节点的脚本,但我收到了成功消息,但没有输出任何内容。
import imagemin from "imagemin";
import webp from "imagemin-webp";
var outputFolder = "./FSS-assets/webp"; // Output folder
var PNGImages = "./FSS-assets/*.png"; // PNG images
var JPEGImages = "./FSS-assets/*.jpg"; // JPEG images
imagemin([PNGImages],outputFolder,{
plugins: [webp({
lossless: true // Losslessly encode images
})]
}).then(function() {
console.log("Images converted!");
});
imagemin([JPEGImages],{
plugins: [webp({
quality: 65 // Quality setting from 0 to 100
})]
}).then(function() {
console.log("Images converted!");
});
我在跑步
- 节点 v14.16.0
- imagemin v8
- imagemin-webp v6
我也试过使用相对文件夹路径无济于事。这是在 Windows 10 上。
解决方法
那是因为 imagemin
有 2 个参数 input
和 options
你给了 3 个参数。
来自Doc:
imagemin(input,options?)
Returns Promise<object[]> in the format {data: Buffer,sourcePath: string,destinationPath: string}.
对于您的代码,它将是:
imagemin([PNGImages],{
destination: outputFolder,plugins: [webp({
lossless: true // Losslessly encode images
})]
}).then(function() {
console.log("Images converted!");
});
,
看起来你只需要稍微调整你的参数结构。成为 ([images],{ destination: ‘/output directory’,plugins: {});
const files = await imagemin(['images/*.{jpg,png}'],{
destination: 'build/images',plugins: [
imageminJpegtran(),imageminPngquant({
quality: [0.6,0.8]
})
]
});
希望这会有所帮助并有效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。