axios-miniprogram/scripts/zip.js

34 lines
931 B
JavaScript

const fs = require('fs');
const path = require('path');
const rimraf = require('rimraf');
const archiver = require('archiver');
const chalk = require('chalk');
const pkg = require('../package.json');
const zip = archiver('zip');
const distPath = path.resolve(__dirname, '..', 'dist');
const distZipName = `download/${pkg.version}.zip`;
const distZipPath = path.resolve(__dirname, '..', distZipName);
console.log();
console.log(chalk.cyan(`${distPath}${distZipName}...`));
rimraf(distZipPath, () => {
const outputStream = fs.createWriteStream(distZipPath);
const startTime = +new Date();
zip.on('error', (error) => {
throw error;
});
zip.on('finish', () => {
const endTime = +new Date();
const ss = ((endTime - startTime) / 1000).toFixed(1);
console.log(chalk.green(`created ${distZipName} in ${ss}s`));
});
zip.pipe(outputStream);
zip.directory(distPath, pkg.name);
zip.finalize();
});