feat: clean the zip files on build

This commit is contained in:
Abhijith Vijayan [FLUXON] 2025-06-24 01:03:46 +05:30
parent 840fb9bd5f
commit 78b2ed7ca7
3 changed files with 85 additions and 2 deletions

55
package-lock.json generated
View File

@ -30,6 +30,7 @@
"typescript": "5.8.3", "typescript": "5.8.3",
"vite": "6.3.5", "vite": "6.3.5",
"vite-plugin-checker": "0.9.3", "vite-plugin-checker": "0.9.3",
"vite-plugin-clean": "2.0.1",
"vite-plugin-zip-pack": "1.2.4" "vite-plugin-zip-pack": "1.2.4"
}, },
"engines": { "engines": {
@ -1125,6 +1126,42 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@rollup/pluginutils": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz",
"integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
"picomatch": "^4.0.2"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/pluginutils/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/@rollup/rollup-android-arm-eabi": { "node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.44.0", "version": "4.44.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz",
@ -1800,6 +1837,13 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true,
"license": "MIT"
},
"node_modules/fill-range": { "node_modules/fill-range": {
"version": "7.1.1", "version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@ -2849,6 +2893,17 @@
"url": "https://github.com/sponsors/jonschlinkert" "url": "https://github.com/sponsors/jonschlinkert"
} }
}, },
"node_modules/vite-plugin-clean": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/vite-plugin-clean/-/vite-plugin-clean-2.0.1.tgz",
"integrity": "sha512-I0pQDsY+VlqbKeR51v01fhujn+LSVnLS3a/6mcqVMCwuC5ZGBtR+wj3SxekaNpzsTwKfbkGbqoyHKn/CUEhg5w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.1.4",
"vite": "^6.1.0"
}
},
"node_modules/vite-plugin-zip-pack": { "node_modules/vite-plugin-zip-pack": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/vite-plugin-zip-pack/-/vite-plugin-zip-pack-1.2.4.tgz", "resolved": "https://registry.npmjs.org/vite-plugin-zip-pack/-/vite-plugin-zip-pack-1.2.4.tgz",

View File

@ -45,6 +45,7 @@
"typescript": "5.8.3", "typescript": "5.8.3",
"vite": "6.3.5", "vite": "6.3.5",
"vite-plugin-checker": "0.9.3", "vite-plugin-checker": "0.9.3",
"vite-plugin-clean": "2.0.1",
"vite-plugin-zip-pack": "1.2.4" "vite-plugin-zip-pack": "1.2.4"
} }
} }

View File

@ -4,6 +4,7 @@ import react from "@vitejs/plugin-react";
import process from "node:process"; import process from "node:process";
import zipPack from "vite-plugin-zip-pack"; import zipPack from "vite-plugin-zip-pack";
import checker from 'vite-plugin-checker'; import checker from 'vite-plugin-checker';
import clean from 'vite-plugin-clean';
import vitePluginWextManifest from "./vite-plugin-wext-manifest"; import vitePluginWextManifest from "./vite-plugin-wext-manifest";
@ -15,6 +16,22 @@ export default defineConfig(({ mode }) => {
const getOutDir = () => path.resolve(destPath, targetBrowser); const getOutDir = () => path.resolve(destPath, targetBrowser);
const getExtensionZipFileName = () => {
switch (targetBrowser) {
case 'opera': {
return `${targetBrowser}.crx`;
}
case 'firefox': {
return `${targetBrowser}.xpi`;
}
default: {
return `${targetBrowser}.zip`;
}
}
};
return { return {
root: sourcePath, root: sourcePath,
@ -35,12 +52,21 @@ export default defineConfig(({ mode }) => {
plugins: [ plugins: [
react(), react(),
// delete previous built compressed file
clean({
targetFiles: [
path.resolve(destPath, getExtensionZipFileName())
],
}),
// Run typescript checker in worker thread
checker({ checker({
typescript: { typescript: {
tsconfigPath: './tsconfig.json' tsconfigPath: './tsconfig.json'
}, },
}), }),
// Generate manifest.json for the browser
vitePluginWextManifest({ vitePluginWextManifest({
manifestPath: "manifest.json", manifestPath: "manifest.json",
usePackageJSONVersion: true, usePackageJSONVersion: true,
@ -48,9 +74,10 @@ export default defineConfig(({ mode }) => {
!isDevelopment && !isDevelopment &&
zipPack({ zipPack({
outDir: destPath,
outFileName: `${targetBrowser}.zip`,
inDir: getOutDir(), inDir: getOutDir(),
outDir: destPath,
outFileName: getExtensionZipFileName(),
enableLogging: true,
}), }),
], ],