没有基本目录的 Zip 文件和文件夹
Zip Files & Folders With No Base Directory
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 库并且 none 有一个排除基本目录的简单方法。
有什么想法吗?
我用过'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();
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 库并且 none 有一个排除基本目录的简单方法。
有什么想法吗?
我用过'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();