node.js - 没有基本目录的 Zip 文件和文件夹

标签 node.js gulp aws-lambda

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

但是,每个 Node.js zip 库都会生成一个包含基本文件夹的 zip 文件,其中包含 Lambda 所需的文件,这会破坏 Lambda,导致“找不到模块” 错误。

例如,如果我在 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 个 Node zip 库,但没有一个有简单的方法来排除基本目录。

有什么想法吗?

最佳答案

我使用了“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();

关于node.js - 没有基本目录的 Zip 文件和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969617/

相关文章:

javascript - 类型错误 : Cannot read property 'split' of undefined in Nodejs

node.js - Sequelize 在创建子实体时看不到外键

node.js - 如何创建使用 gulp 的 node.js 命令行实用程序

node.js - AWS Lambda 因 NodeJS 依赖项而失败

node.js - Nodejs Express API 与 NATS?

javascript - Meteor 中的自动 createdAt 和 updatedAt 字段

laravel - gulp 构建语义用户界面非常慢

javascript - 为什么我必须在 gulp 中使用vinyl-source-stream?

python - 使用 pytest 设置的 Lambda 处理程序上下文 aws_request_id

python - AWS Lambda Python 3.7 运行时异常记录