【问题标题】:Zip Files & Folders With No Base Directory没有基本目录的压缩文件和文件夹
【发布时间】:2015-09-07 07:04:15
【问题描述】:

AWS Lambda 需要一个 zip 文件,该文件在解压缩时会生成一个文件。

但是,每个 node.js zip 库都会生成一个包含基本文件夹的 zip 文件,其中包含 Lambda 需要的文件,这会破坏 Lambda,从而导致 'Cannot find module' 错误。

例如,如果我在dist 文件夹中有一个index.js 文件和一个node_modules 目录,当我使用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 库,但没有一个可以简单地排除基本目录。

有什么想法吗?

【问题讨论】:

标签: node.js gulp aws-lambda


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    相关资源
    最近更新 更多