{"id":14244,"library":"vite-plugin-zip-pack","title":"Vite Plugin for Zip Archiving","description":"The `vite-plugin-zip-pack` is a utility for Vite-based projects, designed to automatically compress the build output directory into a single zip archive. Currently at version 1.2.4, this plugin integrates seamlessly into the Vite configuration, executing its archival task as part of the build process. It allows developers to specify custom input and output directories, define the zip archive's filename, and apply a path prefix for the contents within the zip. A key differentiator is its straightforward API and direct integration with Vite's build lifecycle, simplifying deployment preparation by providing a ready-to-distribute archive. It also offers a `filter` function for granular control over which files and directories are included in the archive and a `done` callback for post-archival actions. While no explicit release cadence is documented, as a utility plugin, updates typically align with Vite's major versions or address specific bug fixes. This plugin primarily serves to streamline continuous integration and deployment pipelines by automating the creation of deployable zip packages from Vite builds.","status":"active","version":"1.2.4","language":"javascript","source_language":"en","source_url":"https://github.com/7th-Cyborg/vite-plugin-zip-pack","tags":["javascript","zip","pack","vite","plugin","vite-plugin","files","archive","output","typescript"],"install":[{"cmd":"npm install vite-plugin-zip-pack","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-zip-pack","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-zip-pack","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Runtime dependency as a Vite plugin, requires Vite for execution.","package":"vite","optional":false}],"imports":[{"note":"The `require` syntax for CommonJS will not work, as Vite configurations are typically ESM-driven.","wrong":"const zipPack = require('vite-plugin-zip-pack');","symbol":"zipPack","correct":"import zipPack from 'vite-plugin-zip-pack';"},{"note":"While `defineConfig` is not from `vite-plugin-zip-pack`, it is essential for configuring Vite plugins and commonly imported alongside `zipPack`.","symbol":"defineConfig","correct":"import { defineConfig } from 'vite';"},{"note":"Importing the `Options` type is useful for TypeScript users to ensure correct plugin configuration.","symbol":"Options","correct":"import type { Options } from 'vite-plugin-zip-pack';"}],"quickstart":{"code":"import { defineConfig } from 'vite';\nimport zipPack from 'vite-plugin-zip-pack';\n\nexport default defineConfig({\n  plugins: [\n    zipPack({\n      // Optional: Specify custom input directory (default: 'dist')\n      inDir: 'build',\n      // Optional: Specify custom output directory for the zip (default: 'dist-zip')\n      outDir: 'archives',\n      // Optional: Specify custom zip archive name (default: 'dist.zip')\n      outFileName: 'my-project-release.zip',\n      // Optional: Filter files/directories to include\n      filter: (fileName, filePath, isDirectory) => {\n        // Exclude specific files or directories\n        if (fileName.includes('temp') || isDirectory && fileName === 'node_modules') {\n          return false;\n        }\n        return true;\n      },\n      // Optional: Callback after zip creation\n      done: (err) => {\n        if (err) {\n          console.error('Failed to create zip file:', err);\n        } else {\n          console.log('Zip file created successfully!');\n        }\n      }\n    }),\n  ],\n});","lang":"typescript","description":"This quickstart demonstrates how to integrate `vite-plugin-zip-pack` into `vite.config.ts`, showcasing basic configuration options like input/output directories, custom filename, a filter function, and a completion callback."},"warnings":[{"fix":"Always verify `inDir` points to your actual build output directory (e.g., 'dist', 'build') and `outDir` is an accessible directory where the zip file should be saved.","message":"Incorrectly configured `inDir` or `outDir` paths can lead to empty zip archives or zip files being placed in unexpected locations. Ensure these paths align with your Vite build output and desired archive destination.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Thoroughly test your `filter` logic, especially with complex exclusion/inclusion patterns, to ensure all required assets are present in the final zip file. Start with no filter and incrementally add rules.","message":"Misusing the `filter` option can unintentionally exclude necessary files or directories from your zip archive, leading to incomplete deployments. The filter function should return `true` for files/directories to be included.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Consider setting `enableLogging: false` in production or CI/CD environments. For extremely large builds, investigate external archiving tools or more granular `filter` configurations to reduce the archive size.","message":"For very large projects, zipping the entire build directory might consume significant memory or CPU resources, potentially slowing down CI/CD pipelines. Excessive logging can also add overhead.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.2.4':36 'action':135 'address':156 'align':149 'allow':56 'also':109 'api':88 'appli':72 'archiv':5,32,47,68,107,126,134,191 'autom':172 'automat':22 'base':18 'bug':158 'build':25,53,95,181 'cadenc':140 'callback':130 'compress':23 'configur':44 'content':78 'continu':166 'control':116 'creation':174 'current':33 'custom':60 'defin':65 'deploy':98,169,176 'design':20 'develop':57 'differenti':84 'direct':90 'directori':27,64,121 'distribut':106 'document':142 'done':129 'execut':45 'explicit':138 'file':119,190 'filenam':70 'filter':112 'fix':159 'function':113 'granular':115 'includ':123 'input':61 'integr':39,91,167 'javascript':182 'key':83 'lifecycl':96 'major':153 'offer':110 'output':26,63,192 'pack':11,184 'packag':178 'part':50 'path':74 'pipelin':170 'plugin':2,9,38,146,161,186,189 'post':133 'post-archiv':132 'prefix':75 'prepar':99 'primarili':162 'process':54 'project':19 'provid':101 'readi':104 'ready-to-distribut':103 'releas':139 'seamless':40 'serv':163 'simplifi':97 'singl':30 'specif':157 'specifi':59 'straightforward':87 'streamlin':165 'task':48 'typescript':193 'typic':148 'updat':147 'util':14,145 'version':35,154 'vite':1,8,17,43,93,151,180,185,188 'vite-bas':16 'vite-plugin':187 'vite-plugin-zip-pack':7 'within':79 'zip':4,10,31,67,81,177,183","created_at":"2026-04-20T01:58:41.430022+00:00","updated_at":"2026-04-20T01:58:41.430022+00:00","problems":[{"fix":"Ensure you are using `import zipPack from 'vite-plugin-zip-pack';` as per ESM standards in your `vite.config.js` or `vite.config.ts`.","cause":"Attempting to import `zipPack` using CommonJS `require()` syntax or an incorrect named import in a typical ESM-configured Vite project.","error":"Error: [vite-plugin-zip-pack] 'zipPack' is not a function"},{"fix":"Verify that the `inDir` path correctly points to your Vite build output directory (e.g., 'dist'). Ensure the build command runs successfully *before* the zip plugin attempts to archive the files.","cause":"The `inDir` option is configured to a directory that does not exist or is not accessible, often because the build process hasn't completed or the path is incorrect.","error":"Error: ENOENT: no such file or directory, scandir 'path/to/nonexistent/directory'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/7th-Cyborg/vite-plugin-zip-pack","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/vite-plugin-zip-pack","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-18","install_tag":null}}