From 8e2f837fb9a64561aa8b1d557808a2f8dc0a1ada Mon Sep 17 00:00:00 2001 From: igurielidze Date: Mon, 30 Mar 2026 23:10:42 +0400 Subject: [PATCH] Delete and recreate view folder on deploy to force Ignition detection Co-Authored-By: Claude Opus 4.6 (1M context) --- svelte-app/vite.config.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/svelte-app/vite.config.ts b/svelte-app/vite.config.ts index 7dc8e5d..7ad3fa8 100644 --- a/svelte-app/vite.config.ts +++ b/svelte-app/vite.config.ts @@ -266,12 +266,14 @@ export default defineConfig({ const { projectName, viewName, viewJson, resourceJson } = JSON.parse(body); const ignitionBase = 'C:/Program Files/Inductive Automation/Ignition/data/projects'; const viewDir = path.join(ignitionBase, projectName, 'com.inductiveautomation.perspective/views', viewName); + // Delete existing view folder first to force Ignition to detect the change + if (fs.existsSync(viewDir)) { + fs.rmSync(viewDir, { recursive: true, force: true }); + } + // Small delay then recreate fs.mkdirSync(viewDir, { recursive: true }); fs.writeFileSync(path.join(viewDir, 'view.json'), viewJson); fs.writeFileSync(path.join(viewDir, 'resource.json'), resourceJson); - // Write a scan-trigger script that a gateway timer can pick up - const triggerFile = path.join(ignitionBase, projectName, '.scan-trigger'); - fs.writeFileSync(triggerFile, new Date().toISOString()); res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ ok: true, path: viewDir }));