目前,我正在这样做:
gulp.task('newInstanceSetup', function() {
return gulp.src('./**/*',{cwd:'./new_instance_setup'})
.pipe(zip('archive.zip'))
.pipe(lambda(newInstanceSetup_params, opts))
.pipe(gulp.dest('.'));
});
这会导致AWS Lambda执行代码时出错。
{
"errorMessage": "Cannot find module 'async'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object.<anonymous> (/var/task/index.js:5:9)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)"
]
}
如果我手动压缩并上传文件夹的内容(选择所有&gt;右键单击&gt; 7-zip&gt;添加到存档...),它将创建工作的存档与Lambda。
如果我手动上传gulp进程创建的archive.zip
,Lambda将在执行代码时抛出错误。这让我相信错误是在gulp压缩过程中的某个地方。
如果我检查两个档案文件大小不同,但内容看起来一样乍看。
zip
来自gulp-zip
答案 0 :(得分:0)
https://github.com/sindresorhus/gulp-zip/issues/64
这是因为Windows和Linux之间存在权限问题。指定{nodir:true}
gulp.src
添加到选项中
我的代码变为:gulp.src('./**/*',{cwd:'./new_instance_setup',nodir:true})