【发布时间】:2019-04-06 12:48:33
【问题描述】:
我使用 imangemin 和 imagemin-optipng nodejs 插件在 aws 上创建了一个 lambda 函数,但它返回以下错误:
错误:生成 /var/task/node_modules/optipng-bin/vendor/optipng ENOENT
var aws = require('aws-sdk');
var s3 = new aws.S3()
var Imagemin = require('imagemin');
var optipng = require('imagemin-optipng');
exports.handler = function(event, context, callback){
var srcBucket = event.Records[0].s3.bucket.name;
var srcKey =
decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));
var params = {Bucket: srcBucket, Key: srcKey};
s3.getObject(params).promise()
.then(data => Imagemin.buffer(data.Body, {
plugins: [
optipng({ optimizationLevel: 7 })
]
})
)
.then(buffer =>
console.log('done ', buffer)
)
.catch(err => callback(err))
};
【问题讨论】:
-
你安装了
imagemin-optipng吗?如果是这样,建议你看看这个线程:github.com/panteng/wechat-h5-boilerplate/issues/5 -
@GCSDC :从我的代码中可以看出,我没有使用 gulp-imagemin,我使用的是 imagemin 模块。你能指定 gulp-imagemin 和 imagemin 模块之间的区别吗?
-
我看到了,还是跟贴里报的错误一样,如果把
gulp-imagemin换成imagemin,cmets上的程序可能会解决问题。不确定两者之间有什么区别。我认为gulp-imagemin只是imagemin的一个实现,可以用 gulp 运行。
标签: node.js aws-lambda imagemin