AWS Lambda需要一个zip文件,该文件在解压缩时会生成文件。
但是,每个node.js zip库都会生成一个zip文件,其中包含一个基本文件夹,其中包含Lambda需要的文件,这会破坏Lambda,从而导致'Cannot find module'
错误。
例如,如果我在index.js
文件夹中有node_modules
个文件和dist
目录,当我使用gulp-zip时,我会在zip文件中添加一个根文件夹拉开拉链......
gulp.src(['./dist/**/*'])
.pipe(zip('dist.zip'))
.pipe(gulp.dest('./'))
// When unzipped, this results in a "dist" folder containing index.js and node_modules
我尝试过6个节点的zip库,没有一个方法可以排除基本目录。
有什么想法吗?
答案 0 :(得分:1)
我已经使用了“node-archiver'”,它可以将目录压缩到目标目录(我只是将其设置为空字符串)。
https://github.com/archiverjs/node-archiver#directorydirpath-destpath-data
var archiver = require('archiver');
archive = archive.directory('./directoryToZip/', '' ); //option 2 is the dest
archive.pipe( outZip);
archive.finalize();