节点 - 尝试压缩目录不执行任何操作

Node - attempt to zip directory does not do anyting

我正在尝试使用 Node、archiver 和 fs 来归档整个文件夹,但似乎没有任何反应。

这是我的实现:

import { createWriteStream } from 'fs';
import archiver from 'archiver';

await zipDirectory('./work', './work/folderName.zip');

const zipDirectory = async (source: string, out: string): Promise<void> => {
  const archive = archiver('zip', { zlib: { level: 9 }});

  return new Promise((resolve, reject) => {
    const stream = createWriteStream(out);
    archive
      .directory(source, false)
      .on('error', err => reject(err))
      .pipe(stream);

    stream.on('close', () => resolve());
    archive.finalize();
  });
}

运行 在节点 14.15.4

Package.json

{
"name": "rpj",
"version": "1.0.0",
"description": "",
"main": "./dist/src/main.js",
"author": "David Faizulaev",
"license": "ISC",
"scripts": {
  "start": "node ./dist/main.js",
  "build": "yarn build:js",
  "build:prod": "yarn run build:js",
  "build:types": "tsc --emitDeclarationOnly",
  "build:js": "babel . --out-dir ./dist --extensions \".ts\" --ignore node_modules --ignore dist --source-maps",
  "build-ts": "tsc",
  "test": "jest --coverage --verbose",
  "lint-test": "npm run lint && npm run test",
  "lint": "eslint -c .eslintrc.js --ext .ts ./src",
  "lint:fix": "eslint --fix -c .eslintrc.js --ext .ts ./src",
  "tslint": "tslint -c tslint.json --project tsconfig.json",
  "sonar": "node ./config/sonar-project.js",
  "prettier": "prettier --write ./projects/**/*.*",
  "sonar-dev": "node ./config/sonar-dev-project.js"
},
"dependencies": {
  "archiver": "^5.3.0",
  "aws-sdk": "2.861.0",
  "cheerio": "^1.0.0-rc.5",
  "config": "3.3.6",
  "esm": "^3.2.25",
  "express": "^4.17.1",
  "imagemin": "7.0.1",
  "imagemin-mozjpeg": "^9.0.0",
  "imagemin-pngquant": "^9.0.2",
  "jszip": "3.6.0",
  "lodash": "4.17.21",
  "node-request-context": "^1.0.5",
  "uuid": "^8.3.2",
  "winston": "^3.3.3"
},
"devDependencies": {
  "@babel/cli": "7.13.10",
  "@babel/core": "7.13.10",
  "@babel/plugin-proposal-class-properties": "7.13.0",
  "@babel/plugin-proposal-object-rest-spread": "7.13.8",
  "@babel/plugin-transform-runtime": "7.13.10",
  "@babel/preset-env": "7.13.10",
  "@babel/preset-typescript": "7.13.0",
  "@babel/runtime": "7.13.10",
  "@types/archiver": "^5.1.1",
  "@types/config": "0.0.38",
  "@types/express": "^4.17.11",
  "@types/imagemin": "7.0.1",
  "@types/imagemin-mozjpeg": "^8.0.1",
  "@types/jest": "^26.0.20",
  "@types/node": "14.14.33",
  "@types/uuid": "^8.3.0",
  "@typescript-eslint/eslint-plugin": "4.17.0",
  "@typescript-eslint/eslint-plugin-tslint": "4.17.0",
  "@typescript-eslint/parser": "4.17.0",
  "aws-sdk-mock": "5.1.0",
  "eslint": "7.21.0",
  "eslint-config-prettier": "^6.11.0",
  "eslint-plugin-jest": "^23.18.0",
  "eslint-plugin-jsdoc": "32.2.0",
  "jest": "27",
  "lint-staged": "^10.5.3",
  "sonarqube-scanner": "^2.8.0",
  "ts-jest": "27",
  "ts-node": "10",
  "tslint": "^6.1.3",
  "typescript": "4.4.4"
}
}

请告诉我如何解决这个问题?

问题是因为我没有创建要存储 zip 文件的目录。 一旦我在启动时添加了目录创建,一切正常。