Zip文件&没有基目录的文件夹

时间:2015-06-21 21:41:53

标签: node.js gulp aws-lambda

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库,没有一个方法可以排除基本目录。

有什么想法吗?

1 个答案:

答案 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();